首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gensim无法使用遗留安装失败进行安装。

gensim无法使用遗留安装失败进行安装。
EN

Stack Overflow用户
提问于 2022-08-27 21:42:42
回答 1查看 50关注 0票数 0

我正在尝试安装gensim。

为此,我运行了以下命令

pip install git+https://github.com/witiko/gensim.git@feature/bm25

但是,它没有安装,并在出现以下错误消息时失败:

代码语言:javascript
复制
      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
EN

回答 1

Stack Overflow用户

发布于 2022-08-28 00:22:07

您的本地C编译器似乎反对Gensim(Cython生成的) .c代码中的一些语法。

您的错误输出通过编译器的一个额外选项提出了一个可能的解决方案:

代码语言:javascript
复制
gensim/similarities/fastss.c:725:9: note: use option -std=c99 or -std=gnu99 to compile your code

您可以通过环境变量CFLAGS添加此标志,例如在安装命令之前设置它:

代码语言:javascript
复制
% 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73514604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档