ImportError:没有名为站点的模块-Mac

时间:2019-05-15 18:16:16

标签: python terminal

这个问题我已经有几个月了。每当我想获取一个新的python软件包并使用它时,我都会在终端中收到此错误:

ImportError: No module named site

我不知道为什么会出现此错误。实际上,我不能使用任何新软件包,因为每次我要安装一个软件包时,都会收到此错误。我搜索了一下,发现问题可能出在PYTHONPATH和PYTHONHOME上,但我不知道它们是什么以及如何更改它们。 我的操作系统是mac os,我不知道如何在mac中解决此问题。

每次打开终端时,我都会使用以下两个命令来解决问题:

unset PYTHONHOME
unset PYTHONPATH

但是下次我再次收到错误消息。

1 个答案:

答案 0 :(得分:0)

Python工具在Mac OS X中不断发展,因此不推荐使用Python 2.7。升级到Mac OS X Catalina(10.15.x)后,据我了解,系统默认路径可能不再适用。这里有一些方案:

  1. GENERIC FIX (通用修复程序)-根据this primer on the site package and Python internal paths,Python 2.7需要用于站点软件包的特定用户路径。我确定的解决方案就是这样:
    mkdir -p ~/.local/lib/python2.7/site-packages
    
    届时,您将拥有一个专用于Python模块的目录(Python才能运行)。 (请注意,错误ImportError: No module named site具有误导性,因为它实际上表明不存在正确的目录结构,无法正确加载site模块。)
  2. 基本替代-您的PYTHONHOME指向Python3,而您的python --version报告的是 2.7 吗? python3 --version报告的内容是否有所不同(或根本没有效果)?当我尝试使用内置插件时,在Catalina升级后,这个错误就开始对我发生。检查您的.profile.bash_profile,看看它们是否明确设置了自定义PYTHONHOME和/或PYTHONPATH。一种选择是更改它,以便仅在需要更新的Python时才显式手动设置ENV变量。您可以考虑将python3pip3进行符号链接以将标准命令留给操作系统。
  3. DEBUGGING -如果您想测试和/或获取更多信息,请尝试以一种越来越冗长的模式执行Python:
    python -v
    python -vv
    python -vvv