在私有版本的python中安装setuptools

时间:2010-08-02 18:15:50

标签: python

一个新手问题,但是......

我已经在系统版本为2.3的主机上安装了python2.7(2.7 at~ / python2.7 / bin / python)。我想添加一些包如MySQLdb但需要setuptools。

说明你可以使用--prefix作为参数。但是,如果我执行以下操作: sh setuptools-0.6c11-py2.7.egg --prefix =〜/ python2.7 / bin / python

我收到错误消息: -bash-3.00 $ sh setuptools-0.6c11-py2.7.egg --prefix =〜/ python2.7 / bin / python setuptools-0.6c11-py2.7.egg:第3行:exec:python2.7:未找到

我没有正确使用--prefix命令吗?当然,输入sh setuptools-0.6c11-py2.7.egg --help也找不到python。

如何告诉setuptools显式查找python的位置?我还需要注意哪些其他问题?

5 个答案:

答案 0 :(得分:5)

我是一个老式的家伙,我避免使用鸡蛋,我经常下载源代码tarball,解压缩并使用setup.py

当处理多个python版本时,我通常会明确地调用所需的版本,如下所示:

$ /usr/bin/python2.6 setup.py build
$ sudo /usr/bin/python2.6 setup.py install

安装时还有一种方法可以做一个初步的“chroot”:

$ python setup.py install --root /tmp

当您希望临时安装到某个目录中时,这非常有用,后者将用于构建特定于发行版的程序包。

这个工作流程总是很适合我。

答案 1 :(得分:3)

将〜/ python2.7 / bin添加到PATH中,例如:

$ export PATH=$PATH:~/python2.7/bin
$ sh setuptools-0.6.c11-py2.7.egg

这应该可以在不需要前缀的情况下工作,因为python本身会告诉setuptools它的默认--prefix是什么。

答案 2 :(得分:2)

为特定的python版本安装easy_install。我刚刚从源代码安装并使用了你想要安装setuptools的python版本。我在安装了Python 2.5和Python 2.7的Ubuntu 11.04中使用了以下步骤。

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefe74e
tar -zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11/
sudo python2.5 setup.py build
sudo python2.5 setup.py install

以下命令将python模块安装到2.5:

sudo easy_install-2.5 pil

此命令将模块安装到2.7

sudo easy_install-2.7 pil

答案 3 :(得分:1)

所以我遇到了同样的问题,上述解决方案对我不起作用。然而,工作(并且有点hacky)是创建一个临时符号链接到Python的安装位置:

sudo mv /usr/bin/python /usr/bin/python.bak

sudo ln -s ~/python2.7/bin/python /usr/bin/python

sh setuptools-0.6c11-py2.7.egg --prefix=~/python2.7/bin/python 

rm /usr/bin/python

mv /usr/bin/python.bak /usr/bin/python

警告:这是假设安装了Python,所以如果mv命令失败,那应该没问题。

答案 4 :(得分:0)

由于Python2.7不在sudo使用的路径上,我遇到了同样的错误 我刚补充说:
alias sudo='sudo env PATH=$PATH'
在运行安装程序之前。