问题描述
|
我正在尝试将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
变量。