python升级后指向不同站点包的Mac Python - 如何将所有站点包指向正确的python版本?

时间:2011-06-25 16:31:44

标签: python macos

我正在尝试将我的Mac从2.6升级到2.7并且一切都很顺利,除了一些库现在使用2.6而不是2.7,任何想法如何将所有新库指向2.7?基本上我试图为2.7安装蛋黄,但它说它已经安装(在2.6下)。

$ python
Python 2.7 (r27:82508, Jul  3 2010, 21:12:11) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[~, kamilski81_macbook@mac]
$ which easy_install
/Library/Frameworks/Python.framework/Versions/2.7/bin/easy_install
[~, kamilski81_macbook@mac]
$ which pip
/Library/Frameworks/Python.framework/Versions/2.7/bin/pip
[~, kamilski81_macbook@mac]
$ which yolk
/Library/Frameworks/Python.framework/Versions/2.6/bin/yolk

2 个答案:

答案 0 :(得分:2)

根据您提供的证据,您的shell搜索路径$PATH上显示了Python 2.6和Python 2.7的两个框架bin目录。如果您使用python.org安装程序同时安装2.6和2.7,则每个安装程序默认修改您的shell启动文件以包含它在$PATH上安装的bin目录。例如:

$ more ~/.bash_profile
[...]

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

# Setting PATH for Python 2.7
# The orginal version is saved in .profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

您认为在2.7实例中安装pipeasy_install是正确的。您应该能够使用pipeasy_install来安装yolk 2.7。在$PATH上同时拥有两个框架框没有任何问题;这是Mac OS X的Python框架安装方案的优点之一.Python本身安装在这些bin目录中的文件通常作为版本化文件名安装,如python2.7,其未编辑名称带有符号链接,python。版本化名称在所有框架bin目录中都是唯一的;使用哪个unversioned将取决于bin目录在$PATH中出现的顺序。对于带有脚本的第三方软件包,例如yolk,脚本名称不会自动进行版本控制,因此如果您多次安装多个bin目录,最终可能会得到yolk

如果您的最终目标是只有一个版本的Python,则可以修改shell启动文件(.bash_profile.profile等)以删除对2.6的引用。如果您愿意,可以完全删除框架中的2.6文件。

如果你想保留两个版本的Python并且每个版本都有一个yolk命令,可以根据需要更改你的shell $ PATH以确保首先出现所需的版本(一个尴尬的解决方案)或创建shell别名复制命令的绝对路径,或在每个框架bin目录中创建一个版本化的符号链接:

$ cd /Library/Frameworks/Python.framework/Versions/2.6/bin
$ ln -s yolk yolk2.6
$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
$ ln -s yolk yolk2.7
$ which yolk2.6
/Library/Frameworks/Python.framework/Versions/2.6/bin/yolk2.6
$ which yolk2.7
/Library/Frameworks/Python.framework/Versions/2.7/bin/yolk2.7

答案 1 :(得分:0)

首先,验证Version/2.7/site-packages中是否未安装yolk。如果不是那么你需要告诉pip安装哪个python版本:

pip -E /Library/Frameworks/Python.framework/Versions/2.7/bin/python yolk

如果是,则路径设置存在问题,需要适当更改PATH变量。