【问题标题】:PYTHON Path issuePython路径问题
【发布时间】:2015-11-05 16:13:27
【问题描述】:

我已经使用 brew 安装了 python27 和 python35 以及一系列软件包(pip、numpy、scipy 等)。我在我的终端中运行了 python,并且导入对每个包都有效。但是,在我使用网站上的软件包安装 python 2.7 和 3.5 以获得空闲(非石英依赖)之后,每当我尝试在空闲或终端中的 python shell 中导入任何内容时,我都会收到以下错误:

>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named numpy

我的 .bash_profile 如下所示:

`Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
export PATH

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"`

“which python”给了我这个: /Library/Frameworks/Python.framework/Versions/2.7/bin/python

当我运行“安装的端口”时,我收到了所有的包,这意味着一切都在那里,但路径都不正确。我应该如何进行?

【问题讨论】:

  • print sys.path 在您的 python 提示符上打印什么?我也没有看到任何提及 PYTHONPATH 变量。你知道 python 使用 PYTHONPATH 来搜索模块而不是 PATH,对吧?
  • "echo $PYTHONPATH" 总是返回一个空字符串,即使一切正常。如果这是问题所在,根据我上面提供的链接,我应该将什么导出到 PYTHONPATH 以使事情正常进行?
  • 是的。还有什么 print sys.path 在你的 python 提示符上打印?
  • print sys.path 打印出以下内容:['', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', 继续下面
  • '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages']

标签: python python-2.7 path .bash-profile


【解决方案1】:

简而言之,您需要正确设置您的PYTHONPATH

这里有一些可能会有所帮助的掘金。

通常,“安装程序”会在 python-installation-dir 内的某个位置的 site-packages 子目录下安装软件包。默认情况下,这些 site-packages 由 python 添加到 PYTHONPATH(即使您的 PYTHONPATH 为空),除非您也调整了 python 设置。或者安装程序将新安装的模块添加到 PYTHONPATH,无论哪种方式您都无需执行任何操作。

也有可能在安装时您以某种方式调整了安装前缀(安装东西的文件夹),并且numpy 等安装在某个单独的目录中。

一些库将自己安装在单独的 /opt/.... 中,在这种情况下,它们会更新用户或全局 rc 脚本以将 /opt/..../lib/... 添加到 PYTHONPATH

最简单的方法是找出安装numpy 的路径并更新全局或本地设置文件,以便将路径包含在其中。

一些基础知识:Python - PYTHONPATH in linux 当然还有:https://www.google.com/search?q=set+PYTHONPATH

【讨论】:

  • 为了以后参考,python 安装所有模块的默认路径方便地位于 /opt/local。因此,一旦我export PYTHONPATH=/opt/local 一切都按预期工作。再次感谢您的回复。
猜你喜欢
  • 2019-09-03
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 2013-10-01
相关资源
最近更新 更多