首先,抱歉我的英语不好! 我在更新我的python时遇到了一些麻烦。 我原来的mac python 2.7.6仍然保持不变。但是,在我安装python 2.7.9作为应用程序后,python 2.7.9成为我的默认python。也就是说,当我键入python -V指令时,Python 2.7.9显示。 但是我安装的那些模块无法通过Python 2.7.9导入。例如,当我使用python 2.7.6时,我确实安装了numpy,但是"没有名为numpy的模块"安装python 2.7.9后显示。 我的观点是如何将app python 2.7.9链接到那些模块?我没有删除orignal mac python,我想解决这个问题而不这样做。当然,如果删除原始的mac python对我有好处,我会这样做。感谢您帮助我解决此问题。
答案 0 :(得分:2)
注意: 以下答案假设您从python.org下载的安装程序中安装了Python 2.7.9。如果您使用Homebrew,MacPorts,Anaconda或其他一些发行版,这些说明将无效。
如果您尚未在2.7.9中安装任何第三方模块,那么解决方案非常简单。首先,从命令行运行
cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
然后
ls site-packages
验证除了site-packages
文件之外,2.7.9的README
文件夹中没有任何内容。然后运行
sudo rm -rf site-packages
删除文件夹。最后,我们会将其符号链接到(我相信的)您当前的site-packages
位置:
sudo ln -s /Library/Python/2.7/site-packages /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
你应该全力以赴。例如,通过激活2.7.9并尝试import numpy
进行测试。它应该工作得很好。
答案 1 :(得分:-1)
PYTHONPATH
增加模块文件的默认搜索路径。该 format与shell的PATH相同:一个或多个目录 由os.pathsep分隔的路径名(例如Unix [或OSX]上的冒号或分号) 在Windows上)。不存在的目录会被忽略。
“模块文件的默认搜索路径”是您可以通过在终端应用程序中执行以下行来查看的目录列表:
$ python -c "import sys; print sys.path"
您可以将PYTHONPATH环境变量设置为包含旧模块的目录。您可以在文件中设置环境变量:
~/.bashrc
首先,您必须弄清楚旧模块的位置。如果您安装了旧版本的python,那么它们将位于大约此处:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7.6/site-packages
如果旧版本是python的系统安装,那么旧模块的目录路径将为:
/Library/Python/2.7/site-packages
(感谢@MattDMo找出那条路径)
打开Finder并按照相应的路径找到旧模块。
获得旧模块的路径后,编辑.bashrc文件。打开终端应用程序(如果需要,然后cd到您的主目录)。然后输入ls -al
:
〜$ ls -al
查看是否列出了.bashrc。如果存在,则在您喜欢的编程文本编辑器中打开它,例如。
〜$ vim .bashrc
如果.bashrc文件不存在,那么该命令将创建该文件。接下来,将以下行添加到.bashrc的底部:
export PYTHONPATH="/Library/the rest of the path here"
注意:等号的两边不能有空格。
如果.bashrc中已经有分配给PYTHONPATH的行,那么请改为:
export PYTHONPATH="/Library/the rest of the path here:$PYTHONPATH"
将目录添加到已分配给PYTHONPATH的以冒号分隔的目录列表的前面。
保存文件,退出终端应用程序,然后尝试执行导入其中一个旧模块的python程序。