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

问题描述

| 我正在尝试将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 @R_874_4045@ion.
>>> 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
    

解决方法

        根据您提供的证据,您似乎在shell搜索路径
$PATH
上同时拥有Python 2.6和Python 2.7的两个框架bin目录。如果您使用python.org安装程序安装了2.6和2.7,则每个安装程序默认都会修改您的Shell启动文件,使其包含安装在ѭ1上的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实例中安装
pip
easy_install
做得正确。您应该能够使用ѭ4或ѭ5来安装2.7的
yolk
。将两个框架容器都放在ѭ1上没有任何问题。这是Mac OS X的Python框架安装方案的优点之一。Python本身在这些bin目录中安装的文件通常安装为版本文件名,例如ѭ10,并带有指向其未版本化名称ѭ11的符号链接。版本名称在所有框架bin目录中都是唯一的;使用哪个未版本控制将取决于bin目录在ѭ1中出现的顺序。对于带有脚本的第三方软件包,如
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
    ,        首先,确认ѭ19中是否未安装蛋黄。如果不是,那么您需要告诉pip要安装哪个python版本:
pip -E /Library/Frameworks/Python.framework/Versions/2.7/bin/python yolk
如果是这样,则说明您的路径设置有问题,需要适当更改
PATH
变量。