Как установить библиотеку Python вручную - PullRequest
18 голосов
/ 08 февраля 2011

Я построил механизм быстрого исправления (http://www.quickfixengine.org/) для одной из моих задач, а также встроенную поддержку Python для него.

К сожалению, это многопользовательская среда, и у меня нет доступа к пути установки Python. Таким образом, команда make install пытается скопировать файлы и завершается неудачно. Мне удалось закомментировать две строки, где он пытается это сделать, и make install завершена. Поскольку я не могу поместить файлы туда, куда я могу поместить созданный файл .so ?

И как я могу сообщить python, что он там есть? Я посмотрел документацию по python.org, но она описывает только процесс установки setup.py .

Также я попытался указать путь для .so в sys.path, который не работал. И есть ли документы об анатомии пакета с питоном? Спасибо.

Ответы [ 3 ]

17 голосов
/ 08 февраля 2011

Я собираюсь предположить, что компиляция пакета QuickFix не производит файл setup.py, а скорее только компилирует привязки Python и полагается на make install для их размещения в соответствующем месте.

Вв этом случае быстрое и грязное исправление состоит в том, чтобы скомпилировать исходный код QuickFix, найти модули расширения Python (вы указали в вашей системе это расширение .so) и добавить этот каталог в переменную среды PYTHONPATH, например, добавить

export PYTHONPATH=~/path/to/python/extensions:PYTHONPATH

или аналогичная строка в вашем файле конфигурации оболочки.

Более надежное решение будет включать компиляцию с ./configure --prefix=$HOME/.local.Предполагая, что QuickFix знает, что нужно поместить файлы Python в соответствующий site-packages, когда вы делаете make install, он должен установить файлы в ~/.local/lib/pythonX.Y/site-packages, который для Python 2.6+ уже должен быть на вашем пути Python как каталог сайтов-пакетов для пользователя .

Если, с другой стороны, он предоставил файл setup.py, просто запустите

python setup.py install --user

для Python 2.6+.

3 голосов
/ 08 февраля 2011

Вам необходимо установить его в каталог в вашей домашней папке и каким-то образом манипулировать PYTHONPATH, чтобы этот каталог был включен.

Самое лучшее и простое - использовать virtualenv. Но это требует установки, вызывая ловушку 22. :) Но проверьте, установлен ли virtualenv. Если он установлен, вы можете сделать это:

$ cd /tmp
$ virtualenv foo
$ cd foo
$ ./bin/python

Затем вы можете просто запустить установку, как обычно, с помощью / tmp / foo / python setup.py install. (Очевидно, вам нужно создать виртуальную среду в вашей папке в вашем домашнем каталоге, а не в / tmp / foo.;))

Если нет virtualenv, вы можете установить свой собственный локальный Python. Но этого тоже нельзя допустить. Затем вы можете установить пакет в локальный каталог для пакетов:

$ wget http://pypi.python.org/packages/source/s/six/six-1.0b1.tar.gz#md5=cbfcc64af1f27162a6a6b5510e262c9d
$ tar xvf six-1.0b1.tar.gz 
$ cd six-1.0b1/
$ pythonX.X setup.py   install --install-dir=/tmp/frotz

Теперь вам нужно добавить /tmp/frotz/pythonX.X/site-packages к вашей PYTHONPATH, и вы должны начать работу!

2 голосов
/ 08 февраля 2011

Вот официальный FAQ по установке модулей Python: http://docs.python.org/install/index.html

Есть несколько советов, которые могут вам помочь.

...