我在试着安装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
1条答案
按热度按时间pxq42qpu1#
看起来您的本地C编译器正在反对Gensim的(Cython生成的)
.c
代码中的一些语法。您的错误输出通过编译器的一个额外选项提供了一个可能的解决方案:
您 * 可能 * 能够通过环境变量
CFLAGS
添加此标志,例如通过在安装命令之前设置它:您 * 可能 * 也会得到与Gensim的一些C++文件相关的类似错误;如果错误输出包含类似的选项建议,您可能需要通过
CPPFLAGS
环境变量提供它。如果这样做不起作用,你还可以在Gensim的
setup.py
文件中编辑额外的gcc
选项。在这种情况下,首先获取git
仓库,然后在make_c_ext()
和make_cpp_ext()
函数中的相关extra_args
行附近本地编辑setup.py
文件,然后执行pip install
命令,指定更改后的目录作为源。