我想使用numpy 1.9而不删除我的Mac附带的numpy(1.8)版本:
>>> import numpy
>>> numpy.version.version
'1.8.0rc1'
>>> numpy.__file__
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/__init__.pyc'
由于那个版本的numpy在System
,我宁愿不删除它。那就是说,pip
认识到我安装了numpy 1.9,但我不知道如何在我的import
声明中引用它。
$ pip list
...
numpy (1.9.0)
...
思考?
请务必注意,Mac上有两种不同的Python安装。有系统Python(/usr/bin
),还有/usr/local/bin
python。
还有两个pip安装。例如:
$ which pip
/usr/local/bin/pip
$ ls -l /usr/local/bin/pip
lrwxr-xr-x 1 dmao admin 30 Feb 14 19:09 /usr/local/bin/pip -> ../Cellar/python/2.7.9/bin/pip
这是自制的点子。我假设你在自制的pip版本上安装了numpy。
默认情况下没有安装pip的系统版本。通常的解决方案是运行easy_install pip
并安装pip的系统版本,然后安装pip install numpy
(使用系统点)。但是,你提到你想让系统保持笨拙。
如果你需要保持系统numpy不变,你可以运行/usr/local
Python作为默认的Python而不是系统Python。这里我们创建一个从默认python到本地python的符号链接,以便本地python成为默认值。
sudo ln -s /usr/bin/python /usr/local/bin/python
然后,您的默认Python版本将成为与您的默认版本的pip匹配的版本。
您可以通过替换符号链接随时恢复默认的Python版本。 / usr / bin具有您需要的链接。
$ ls -l /usr/bin/ | grep python
lrwxr-xr-x 1 root wheel 76 Feb 21 2014 pythonw2.5 -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw2.5
lrwxr-xr-x 1 root wheel 76 Feb 21 2014 pythonw2.6 -> ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/pythonw2.6
lrwxr-xr-x 1 root wheel 76 Feb 21 2014 pythonw2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
或者,如果你的系统Python被用于某些东西,和/或你需要在python包的版本之间切换,你可以使用virtualenv,这使得这更容易。
在Mac上管理python模块的方法有很多种。例如,What is the most compatible way to install python modules on a Mac?
对于在2018年达到此目的的任何人,正确的方法是确保您的brew包文件夹位于PATH中的系统包文件夹之前:
Brew install <mypackage>
- python
或numpy
在这种情况下which <package>
来测试现在找到brew包而不是系统包。它应该说/usr/local/bin/<package>
而不是/usr/bin/<package>
。/usr/bin
中找到,而brew包在/usr/local/..
中开始,例如/usr/local/bin
,/usr/local/opt/<package>/bin
。echo $PATH
来测试您的PATH订单。 /usr/local/..
出现在系统路径之前吗?/usr/local/bin
在/usr/bin
之前出现,以便在系统可执行文件之前找到brew安装的可执行文件。export PATH=/usr/local/bin:$PATH
并将其放入~/.bash_profile
配置文件中以使其永久化echo $TEST
),并找到您的brew包而不是系统包(which <package>
)/usr/local/Cellar/..
中安装软件包,并将二进制文件(可执行文件)符号链接到/usr/local/bin
文件Python3
,gcc-7
等非标准名称的软件包。所以,即使你在PATH中使用/usr/local/bin
之前有/usr/bin
,当你使用which python
进行测试时,它仍然会指向/usr/bin/<package>
。在这种情况下,您需要在/usr/local/bin
中使用预期的可执行文件名手动创建符号链接。例如,在/usr/local/bin
做ln -s python3 python