犹豫了一段时间是否更新Mac OS X内置的Python2.7.5 最后在还是更新到了2.7.7版本然后一系列的问题来了。easy_install、pip、Scrapy、Django
这些包都无法正常在终端下执行。
例如一哥们的Mac下Python2.7使用pip报错的File "/usr/local/bin/pip", line 5, in <module>
错误,我也检查了一遍。发现重装后也不可以,在PyCharm下将更新后的Python路径修复一下就可以正常使用了,但是非常奇怪的一点,无论我怎么卸载重装第三方包也好。就是不见Python的包在/Library/Python/2.7/site-packages/
路径内,看到的只有之前内置2.7.5的包,就纳闷了半天还没想到问题。
想了一下执行比如easy_install的时候按照Windows的尿性还要加环境变量,那么我检查了一遍/usr/bin/
目录是正常存在easy_install
的。那么我在终端执行的结果是这样:
python version 2.7.7 can't run /usr/bin/easy_install. Try the alternative(s):
(Error: no alternatives found)
Run "man python" for more information about multiple version support in
Mac OS X.
这样的问题我也检查了一遍,这个是原本未升级时2.7.5遗留下来的,并没有做过任何处理。
我在这里思考了一下,发现更新Python2.7.7之后所有的包都安装在了:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
里面,我是不是认为我在更新完后执行easy_install
的时候执行的并不是Python2.7.7里面的包?而是Python2.5.5里面的easy_install
?
如果是这样,那么理论上我的解决方法是不是可以这样:
将所有以前遗留的包软链接重新链接一次?
sudo rm -rf /usr/bin/easy_install
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/easy_install.py /usr/bin/easy_install
然后将以前的/Library/Python/2.7/site-packages/
包删除掉?或者无视它的存在~
重点是,我将Python更新了,然后将包得软链接比如easy_install、pip、Django、Scrapy
这样的包替换掉?是否就完美解决掉Mac OS X下的Python更新?
Ps.提问水平真的很拙计,希望大家能看得懂!
Mac OS X下不建议升级内置的Python、Ruby跟Perl,血和泪的教训。