Я настраиваю новый сервер на основе RHEL5 и хотел установить некоторые модули Python, которые с ним не поставляются. Я видел, что в setuptools есть возможность создавать пакеты RPM из модулей, но, к сожалению, это работает только с setup.py
, не с easy_install
. Однако я хотел бы сохранить разрешение зависимостей easy_install
так что руководство setup.py
не вариант.
Как бы вы разрешили эту ситуацию? Я бы не хотел устанавливать пакеты в /usr/local
тем более, что стандартный питон из RHEL5 не определяет путь Python под /usr/local
по умолчанию.
Если вы можете использовать дополнительные репозитории RPM, один из вариантов - проверить, доступен ли пакет Python, который вы ищете, в репозитории EPEL (дополнительные пакеты для Enterprise Linux).
Самый простой и удобный для Python способ сделать это - использовать virtualenv. Предостережение заключается в том, что он доступен только после выполнения команды source $ HOME / .pystuff / bin / activate, но дает преимущество в том, что вам доступен весь мир пакетов python с минимальным загрязнением дистрибутива вашей системы.
Очевидно, вы можете искать и создавать собственные системные пакеты Python, но, честно говоря, для большинства случаев это больше хлопот, чем того стоит. Если вы собираетесь это сделать, начните с seutptools и virtualenv, очевидно, = p
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
easy_install virtualenv
virtualenv $HOME/.pystuff
source $HOME/.pystuff/bin/activate
easy_install pip
easy_install <random_pypy_stuff>
easy_install <random .egg file>
easy_install <random .tar.gz file>
pip install <other random stuff that won't install with easy_install>
Во-первых, я стараюсь ничего не устанавливать, кроме как напрямую из дистрибутива ОС (Red Hat, Debian и т. Д.) - в качестве первой попытки. Конечно, проблема, особенно с дистрибутивами Enterprise, заключается в том, что многие вещи недоступны.
В этом случае я бы снова не стал полагаться на что-либо, генерирующее для меня RPM, просто потому, что он упакован в RPM, не означает, что это хорошо.
Что бы я сделал (ну, что я делаю :), так это написать файл спецификации для создания пакета для этого модуля Python самостоятельно.
В частности, с помощью инструментов настройки ...
pythonX.Y setup.py build
pythonX.Y setup.py install --root=<my-build-area> --<other-options>
Таким образом, вы можете полностью контролировать, где что установлено.