How to undo a Python setuptools --prefix path blunder

╄→尐↘猪︶ㄣ 提交于 2019-12-24 10:13:02

问题


When I installed Python's setuptools I absent mindedly tacked on a --prefix path I had been using on another machine:

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

Now after this blunder when I try to install pip I get the following error:

[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

What's happening is that a symbolic link is being created that points to the folder I specified in the --prefix path:

[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

I deleted this link and then re-ran the setuptools installer and specified the correct prefix (my Python install lives in /usr/lib/python2.7):

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

I then re-ran easy_install pip and it looked like I'd fixed my finger trouble. However when I went to install virtualenv I encountered the same problem:

[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

Again the wrong path is being used to create the symbolic link to where virtualenv is installed:

[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

(I'm running Fedora 15 32bit which has Python 2.7.1 installed out of the box)

How do I fix this permanently?


回答1:


I managed to get back to square one by using brute force and eradicating any and all evidence of setuptools, easy_install and pip from my site-packages folder.

After that I re-ran sh setuptools-0.6c11-py2.7.egg without the --prefix switch and things are as they should be now.




回答2:


easy_install --help mentions that you can specify --prefix there as well

I think by default this will come from ~/.pydistutils.py



来源:https://stackoverflow.com/questions/8022240/how-to-undo-a-python-setuptools-prefix-path-blunder

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!