Hal*_*nci 15 cython python-3.x gensim
操作系统:macOS Monterey 12.6 芯片:Apple M1 Python 版本:3.11.1
我尝试:
pip3 install gensim
Run Code Online (Sandbox Code Playgroud)
安装过程开始顺利,但在运行“clang”时最终失败。错误信息是:
clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.11/include/python3.11 -I/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/numpy/core/include -c gensim/models/word2vec_inner.c -o build/temp.macosx-10.9-universal2-cpython-311/gensim/models/word2vec_inner.o
gensim/models/word2vec_inner.c:217:12: fatal error: 'longintrepr.h' file not found
#include "longintrepr.h"
^~~~~~~~~~~~~~~
1 error generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
Run Code Online (Sandbox Code Playgroud)
这个问题是在几个 github 帖子中提出的,归因于 cython 和 python 3.11 之间的一些不兼容性。但是,在 cython 更新之前,不会提出有关用户应该做什么的建议。我可能歪曲了 github 上讨论的细节,但我认为这就是要点。
有人可以帮我同时安装 gensim 吗?
谢谢。
我更新了 cython 和 aiohttp。后者是因为我看到过一篇文章,其中 aiohttp 安装失败的原因与我的相同(缺少“longintrepr.h”)。
没提升。“pip install gensim”仍然失败,并且失败并显示与上面复制的相同的消息。
Pycrypto在GNU/Linux 上构建时,我在使用 Python3.11 时遇到了类似的问题。作为一种肮脏的解决方法,我将https://github.com/python/cpython/blob/main/Include/cpython/longintrepr.h复制到/usr/include/python3.11/longintrepr.h并且它起作用了!
看来您的问题可能是由于相当新的 Python 的具体情况和滞后的库支持造成的,在一个有点新的系统(MacOS M1 机器)上,它有自己有点独特的构建工具链。
\n除非您绝对需要使用 Python 3.11.1,否则我建议在 Python 环境中使用 Gensim 并使用稍旧的 Python 解释器,其中您真正需要的各种包可能会更稳定一些。例如,在许多操作系统/体系结构/Python 组合上,标准pip install将获取预编译库 \xe2\x80\x93,因此您所看到的类型的构建错误不会发生。
您的安装正在回退到本地编译(这会在没有简单的现成解决方案的情况下遇到问题),这暗示着完整配置的某些内容仍然在某种程度上不受一个或多个相关库的支持。
\n如果您使用conda第 3 方系统来管理 Python 虚拟环境,它还使您能够显式选择在每个环境中使用哪个 Python 版本。也就是说,您不必拘泥于操作系统上默认/全局的确切版本和已安装的库。您可以轻松尝试 Python 3.10 或 Python 3.9,这可能会更好。
而且,保持开发/项目虚拟环境与系统的 Python 不同通常也被认为是用于其他目的的“最佳实践”。您不会对系统 Python 和任何依赖它的工具造成损坏,也不会面临多个 Python 项目需要冲突的库版本的问题。(您只需为每个项目使用单独的环境。)并且,严格指定项目环境中需要的内容有助于保持其先决条件/依赖关系清晰,以便将来在其他地方进行迁移/安装。
\n当使用conda该工具用于此目的时,我通常从miniconda版本开始,以便我可以明确控制安装哪些软件包,从而可以保持每个环境针对其目的进行最低限度的指定。(更大的anaconda方法是预先安装大量流行的软件包。)
| 归档时间: |
|
| 查看次数: |
30716 次 |
| 最近记录: |