我正在尝试安装gensim。
为此,我运行了以下命令
pip install git+https://github.com/witiko/gensim.git@feature/bm25。
但是,它没有安装,并在出现以下错误消息时失败:
building 'gensim.models.nmf_pgd' extension
gcc -pthread -B /XXXX/envs/codex-env/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /XXXX/envs/codex-env/include -I/XXXX/envs/codex-env/include -fPIC -O2 -isystem /XXXX/envs/codex-env/include -fPIC -I/XXXX/codex-env/include/python3.9 -I/XXXX/envs/codex-env/lib/python3.9/site-packages/numpy/core/include -c gensim/models/nmf_pgd.c -o build/temp.linux-x86_64-cpython-39/gensim/models/nmf_pgd.o
gcc -pthread -B /XXXX/envs/codex-env/compiler_compat -shared -Wl,-rpath,/XXXX/envs/codex-env/lib -Wl,-rpath-link,/XXXX/envs/codex-env/lib -L/XXXX/envs/codex-env/lib -L/XXXX/envs/codex-env/lib -Wl,-rpath,/XXXX/envs/codex-env/lib -Wl,-rpath-link,/XXXX/envs/codex-env/lib -L/XXXX/envs/codex-env/lib build/temp.linux-x86_64-cpython-39/gensim/models/nmf_pgd.o -o build/lib.linux-x86_64-cpython-39/gensim/models/nmf_pgd.cpython-39-x86_64-linux-gnu.so
building 'gensim.similarities.fastss' extension
creating build/temp.linux-x86_64-cpython-39/gensim/similarities
gcc -pthread -B /XXXX/envs/codex-env/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /XXXX/envs/codex-env/include -I/XXXX/envs/codex-env/include -fPIC -O2 -isystem /XXXX/envs/codex-env/include -fPIC -I/XXXX/envs/codex-env/include/python3.9 -I/XXXX/envs/codex-env/lib/python3.9/site-packages/numpy/core/include -c gensim/similarities/fastss.c -o build/temp.linux-x86_64-cpython-39/gensim/similarities/fastss.o
gensim/similarities/fastss.c: In function ‘ceditdist’:
gensim/similarities/fastss.c:725:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (WIDTH tmpi = 0; tmpi <= len_s1; tmpi++) row2[tmpi] = tmpi;
^
gensim/similarities/fastss.c:725:9: note: use option -std=c99 or -std=gnu99 to compile your code
gensim/similarities/fastss.c:727:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (WIDTH i2 = 0; i2 < len_s2; i2++) {
^
gensim/similarities/fastss.c:738:13: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (WIDTH i1 = 0; i1 < len_s1; i1++) {
^
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> gensim发布于 2022-08-28 00:22:07
您的本地C编译器似乎反对Gensim(Cython生成的) .c代码中的一些语法。
您的错误输出通过编译器的一个额外选项提出了一个可能的解决方案:
gensim/similarities/fastss.c:725:9: note: use option -std=c99 or -std=gnu99 to compile your code您可以通过环境变量CFLAGS添加此标志,例如在安装命令之前设置它:
% CFLAGS="-std=c99" pip install git+https://github.com/witiko/gensim.git@feature/bm25您可能也会得到与Gensim的一些C++文件相关的类似错误;如果错误输出包含类似的选项-建议,您可能需要通过CPPFLAGS环境变量提供它。
如果这不起作用,您也可以将这些额外的gcc选项编辑到Gensim的setup.py文件中。在这种情况下,首先获取git存储库,然后在本地编辑make_c_ext()和make_cpp_ext()函数中相关的extra_args行周围的setup.py文件,然后执行指定更改目录作为源的pip install。
https://stackoverflow.com/questions/73514604
复制相似问题