Как установить библиотеку 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
Есть несколько советов, которые могут вам помочь.