2010-08-02 2 views
7

на вопрос новичка, но .....Установка Setuptools в частной версии питона

Я установил python2.7 на хосте, где версия системы 2,3 (2,7 при ~/python2.7/бункером/Python). Я хотел бы добавить несколько пакетов, таких как MySQLdb, но мне нужно setuptools.

В указателях указано, что вы можете использовать -prefix в качестве аргумента. Однако, если я делаю следующее: ш Setuptools-0.6c11-py2.7.egg prefix = ~/python2.7/bin/питон

Я получаю сообщ об ошибке: -bash-3.00 $ ш Setuptools-0.6c11-py2.7.egg prefix = ~/python2.7/бен/Python Setuptools-0.6c11-py2.7.egg: строка 3: EXEC: python2.7: не найдены

Я не использую команду -prefix правильно? Естественно, набрав sh setuptools-0.6c11-py2.7.egg --help, также не удается найти python.

Как сообщить setuptools, где явно найти python? Любые другие вопросы, о которых я должен знать?

ответ

2

Добавить ~/python2.7/бен к вашему PATH, например .:

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

Это должно работать без необходимости префикса, так как питон сами расскажет Setuptools, что его значение по умолчанию --prefix есть.

+1

Полезно. У меня был python2.7 на моем пути, но не на пути, используемом sudo. – Mead

5

Я старомодный парень, и я не использовать яйцо, я обычно загрузить исходный код тарболл, извлекать и использовать setup.py

При работе с несколькими версиями Python, я обычно называю искомую явно, как это:

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

Существует также способ сделать предварительный «корневым» при установке:

$ python setup.py install --root /tmp 

Это полезно, когда вы хотите временный зайдите в определенный каталог, который позже используется для создания дистрибутивного пакета.

Этот рабочий процесс всегда служит мне хорошо.

2

Для установки easy_install для конкретной версии python. Я только что установил из источника и использовал версию python, которую вы также хотите установить setuptools. Я использовал следующие шаги в Ubuntu 11.04 с установленными Python 2.5 и Python 2.7.

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 

Следующая команда устанавливает модуль питона 2,5:

sudo easy_install-2.5 pil 

Эта команда устанавливает модуль на 2,7

sudo easy_install-2.7 pil 
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, так что если мв команды терпят неудачу, то это должно быть хорошо.

0

У меня была такая же ошибка из-за того, что Python2.7 не был на пути, используемом sudo.
Я только что добавил:
alias sudo='sudo env PATH=$PATH'
перед запуском установщика.

Смежные вопросы