如何撤销Python setuptools --prefix路径错误

1 投票
2 回答
1678 浏览
提问于 2025-04-17 05:42

我在安装Python的 setuptools 时,心不在焉地加了一个 --prefix 路径,这个路径是我在另一台机器上用过的:

sh setuptools-0.6c11-py2.7.egg --prefix=/opt/python2.7.2

结果在我尝试安装 pip 时,出现了以下错误:

[root@kkdev src]# easy_install pip
Searching for pip
Best match: pip 1.0.2
Processing pip-1.0.2-py2.7.egg
pip 1.0.2 is already the active version in easy-install.pth
Installing pip script to /usr/bin
error: /usr/bin/pip: No such file or directory

发生的情况是,创建了一个符号链接,它指向我在 --prefix 路径中指定的文件夹:

[root@kkdev src]# ls -al /usr/bin/pip
lrwxrwxrwx 1 root root 24 Nov  5 17:01 /usr/bin/pip -> /opt/python2.7.2/bin/pip

我删除了这个链接,然后重新运行了setuptools的安装程序,并指定了正确的前缀(我的Python安装在 /usr/lib/python2.7):

sh setuptools-0.6c11-py2.7.egg --prefix=/usr

接着我又运行了 easy_install pip,看起来我解决了之前的错误。但是当我去安装 virtualenv 时,又遇到了同样的问题:

[root@kkdev src]# pip install virtualenv

[uninteresting installer dialogue snipped]

Installing virtualenv script to /usr/bin

error: /usr/bin/virtualenv: No such file or directory

再次使用了错误的路径来创建指向 virtualenv 安装位置的符号链接:

[root@kkdev src]# ls -al /usr/bin/virtualenv
lrwxrwxrwx 1 root root 31 Nov  5 17:01 /usr/bin/virtualenv -> /opt/python2.7.2/bin/virtualenv

(我在运行的是Fedora 15 32位,系统自带Python 2.7.1)

我该如何永久解决这个问题呢?

2 个回答

0

easy_install --help 里提到你可以使用 --prefix 这个选项

我觉得默认情况下,这个设置会来自于 ~/.pydistutils.py 这个文件

1

我通过强行删除我电脑上site-packages文件夹里所有关于setuptoolseasy_installpip的东西,终于回到了最初的状态。

之后,我重新运行了sh setuptools-0.6c11-py2.7.egg,这次没有--prefix这个选项,现在一切都正常了。

撰写回答