ModuleNotFoundError:没有名为“swig”的模块,但 swig 已安装

问题描述 投票:0回答:2

我正在设置虚拟环境并尝试安装 faiss-cpu。问题是我不断收到此错误:

\`ERROR: Command errored out with exit status 1:
command: /scratch1/skzhang/NNK_params/nnk_param_env/bin/python3 /scratch1/skzhang/NNK_params/nnk_param_env/lib64/python3.6/site-packages/pip/\_vendor/pep517/
in_process/\_in_process.py build_wheel /tmp/tmpffzso5pd
cwd: /tmp/pip-install-wd2v3dbd/faiss-cpu_83e2fb8a63d342bf9619c47cf685b0c7
Complete output (12 lines):
running bdist_wheel
running build
running build_py
running build_ext
building 'faiss.\_swigfaiss' extension
swigging faiss/faiss/python/swigfaiss.i to faiss/faiss/python/swigfaiss_wrap.cpp
swig -python -c++ -Doverride= -I/usr/local/include -Ifaiss -doxygen -DSWIGWORDSIZE64 -module swigfaiss -o faiss/faiss/python/swigfaiss_wrap.cpp faiss/faiss/p
ython/swigfaiss.i
Traceback (most recent call last):
File "/scratch1/skzhang/NNK_params/nnk_param_env/bin/swig", line 5, in \<module\>
from swig import swig
ModuleNotFoundError: No module named 'swig'
error: command 'swig' failed with exit status 1
-

ERROR: Failed building wheel for faiss-cpu
ERROR: Could not build wheels for faiss-cpu, which is required to install pyproject.toml-based projects\`

我已经运行了

pip3 install swig --upgrade
,结果成功了。我也尝试卸载并重新安装但仍然没有任何结果。有谁知道我该如何解决这个问题?另外,如果有用的话,我正在使用 Python 3.6.8。

python installation virtualenv swig
2个回答
2
投票

好的更新是它现在可以工作了。我认为我设置的虚拟环境有问题,因为在我停止使用它后,faiss-cpu 似乎安装没有问题。但不太确定我之前做错了什么。


0
投票

问题是由于您尝试安装的项目中未声明的构建依赖项造成的。根据 PEP-518,文件

pyproject.toml
应添加到该项目中,内容如下:

[build-system]
requires = ["setuptools", "swig"]
# and possibly other dependencies

在构建过程中,pip 设置环境变量

PYTHONNOUSERSITE
,并使用声明的依赖项创建一个隔离的构建环境。这就解释了为什么安装 swig 后你仍然会得到
ModuleNotFoundError

© www.soinside.com 2019 - 2024. All rights reserved.