Опция --prefix в Easy_install не меняет место установки моего пакета

Я хочу установить Sphinx 1.1.3 для Python 2.6. Однако у меня нет прав на sudo. Поэтому вместо того, чтобы устанавливать его в месте по умолчанию, я хочу установить другое местоположение, используя --prefix. Делать следующее:

-bash-3.2$ easy_install Sphinx-1.1.3-py2.6.egg --prefix=/homes/ndeklein/python2.6/site-packages/

дает мне:

error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

[Errno 13] Permission denied: '/usr/lib/python2.4/site-packages/test-easy-install-18534.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

/usr/lib/python2.4/site-packages/

Я что-то не так набираю с префиксом? Кроме того, что я мог бы использовать вместо этого (что я использовал с другими пакетами):

python setup.py install --home=/homes/ndeklein/python2.6/site-packages/

но я не могу найти скрипт setup.py. Я предполагаю, что у яиц нет сценария setup.py, это правда?

3 ответа

Решение

На этом сайте обсуждаются не-root установки Python. Это может быть полезно для вас...

http://www.astropython.org/tutorials/user-rootsudo-free-installation-of-python-modules7/

Процитирую немного об этом:

Пользовательский файл конфигурации ~ /.pydistutils.cfg переопределяет внутренний системный путь для установки пакетов Python, перенаправляя встроенные библиотеки (lib), сценарии (bin) и данные (share) в пользовательские и указанные каталоги. Вы должны просто сообщить установщику python, где находятся эти каталоги.

Файл пользователя, ~/.pydistutils.cfg, имеет следующие строки, используя довольно очевидный синтаксис:

[install]
install_scripts = ~/usr/bin
install_data = ~/usr/share
install_lib = ~/usr/lib/python2.4/site-packages

Конечно, любые каталоги, которые вы укажете, вероятно, должны существовать, и вы должны поместить их в начало вашей PYTHONPATH:

export PYTHONPATH=~/usr/lib/python2.4/site-packages:${PYTHONPATH}

Похоже, что более современные установки Python (по сравнению с ссылками) должны быть в состоянии использовать ~/.local каталог:

easy_install --prefix=~/.local ...

Существует также:

easy_install --user ...

который будет установлен в пользовательский каталог сайта.

Вам необходимо указать параметры перед пакетом, поэтому команда должна быть:

easy_install --prefix=/homes/ndeklein/python2.6/site-packages/ Sphinx-1.1.3-py2.6.egg 

Вы можете попробовать установить pip из easy_install(pip рекомендуется вместо easy_install в наши дни)

Тогда вы можете просто использовать

pip install --user Sphinx

см. http://www.pip-installer.org/en/latest/installing.html о том, как установить pip, если это необходимо.

Вы также можете установить pip install virtualenv и работать внутри virtualenv(где pip установит все пакеты в папке пакетов локального сайта). см. http://pypi.python.org/pypi/virtualenv для получения дополнительной информации.

Другие вопросы по тегам