Как установить библиотеку python вручную

Я построил механизм quickfix (http://www.quickfixengine.org/) для одной из моих задач, а также встроил поддержку python для него. К сожалению, это многопользовательский интерфейс, и у меня нет доступа к пути установки Oython. Таким образом, команда make install пытается скопировать файлы и выйти из строя. Мне удалось прокомментировать две строки, где она пытается это сделать, и завершить установку. Поскольку я не могу поместить туда файлы, где я могу поместить файл .so. И как я могу позволить python знать, что он есть? Я просмотрел документацию python.ord, но он описывает процесс установки setup.py. Также я попытался поместить путь для .so в sys.path, это не сработало. Также есть ли какие-либо документы об анатомии пакета python? Спасибо.

Ответы

Ответ 1

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

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

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 +.

Ответ 2

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

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

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

Затем вы можете просто запустить установку, как обычно, с установкой /tmp/foo/python setup.py. (Очевидно, вам нужно сделать виртуальную среду в своей папке в вашем домашнем каталоге, а не в /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, и вы должны быть запущены!

Ответ 3

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

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