如何使用新的Python版本的pip?

时间:2013-02-02 17:28:00

标签: python pip distribute

我有python2.6作为我的默认python,我一直在使用分发easy_install来安装~/.local中的包。 easy_install有很多问题,我想切换到pip,同时从python2.6升级到python2.7。我现有的pip版本与python2.6绑定,并始终在~/.local/lib/python2.6中查找包。这意味着我必须再次使用Python2.7安装pip,但似乎无法用现有的python2.6 pip来完成,对吧?

因此我尝试下载pip并安装如下:

python2.7 setup.py install --prefix=~/.local

请注意,我没有root,所以我必须在本地安装pip。当我尝试这个时,我得到:

Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    from setuptools import setup
ImportError: No module named setuptools

我该如何解决这种情况?我显然无法用pip安装setuptools,因为我无法安装pip ...我想做的就是将pip与python2.7连接起来,升级pip然后用pip安装一切并忘记easy_install和旧的python2.6和它的包裹。

当我尝试下面的答案时,我得到:

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /home/user/.local/lib/python2.7/site-packages

This directory does not currently exist.  Please create it and try again, or
choose a different installation directory (using the -d or --install-dir
option).

我必须手动创建(使用mkdir)目录:

~/.local/lib/python2.7/site-packages

这似乎已经破了......一旦我这样做了它,但为什么需要手动创建目录?

感谢。

1 个答案:

答案 0 :(得分:1)

您需要先安装setuptools;它拥有它自己的installation script(它是egg文件的一部分):

wget "http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg"
sh setuptools-0.6c11-py2.7.egg --prefix=~/.local

请注意,它也支持--prefix=选项。它会找到你的python2.7二进制文件(而不是2.6版本)因为你下载了2.7蛋版本。