为什么我在 Linux 中使用 python3 调用 Numpy、Scipy、Gensim 时出现以下错误?
>import gensim _concrete_types = {v.type for k, v in _concrete_typeinfo.items()} AttributeError: 'tuple' object has no attribute 'type'
此错误表明您在导入 Gensim 时遇到了问题,该问题可能与依赖库(如 Numpy 或 Scipy)的版本不兼容有关。具体来说,_concrete_types 错误通常是由于 Gensim 的某些功能依赖于旧版本的 Numpy 或 Scipy,但您的系统上可能安装了更新版本。
_concrete_types
bash python3 -c "import numpy; print(numpy.__version__)" python3 -c "import scipy; print(scipy.__version__)"
Gensim 通常对 Numpy 和 Scipy 有特定的版本要求。如果版本过旧或过新,可能导致错误。
bash pip install --upgrade numpy scipy
如果问题仍然存在,尝试安装特定版本。例如: bash pip install numpy==1.21 scipy==1.7
bash pip install numpy==1.21 scipy==1.7
升级 Gensim: 如果您使用的是较旧版本的 Gensim,升级到最新版本可能会解决问题: bash pip install --upgrade gensim
bash pip install --upgrade gensim
创建虚拟环境: 如果错误依然存在,可能是由于系统中多个库之间存在冲突。建议创建一个干净的虚拟环境并重新安装库: bash python3 -m venv myenv source myenv/bin/activate pip install gensim
bash python3 -m venv myenv source myenv/bin/activate pip install gensim
检查 Python 版本: 某些库的兼容性可能与您的 Python 版本相关。确保您使用的 Python 版本在 Gensim 的支持范围内。
尝试较低版本的 Gensim: 如果您的系统环境中 Numpy 或 Scipy 无法轻易降级,可以尝试安装较低版本的 Gensim。例如: bash pip install gensim==3.8.3
bash pip install gensim==3.8.3
bash conda install gensim
完成上述步骤后,重新运行您的脚本,通常可以解决这个错误。