2015-03-14 4 views
1

Я не очень-то знаю о python, но хотел бы установить некоторые модули python в локальном каталоге на сервере, на котором у меня нет доступа sudo.Как установить модули python в локальный каталог? --user и экспорт pythonpath не работает

Я начинаю идти в моем нужном каталог (не корневой) и создать дерево каталогов, необходимое для хранения моих пользовательских модулей

cd /root/example/sub-example 
mkdir -p local/lib/python2.7/site-packages 

Я затем экспортировать этот локальный путь к PYTHONPATH

export PYTHONPATH=$PYTHONPATH:/root/example/sub-example/local/lib/python2.7/site-packages 

I затем создайте новый подкаталог для хранения пакета python при извлечении

mkdir example-python-directory 
cd example-python-directory 
wget http://example-python-package 
tar -xvf example-python-package.tar.gz 
cd example-python-package 

Последний, я бегу сценарий setup.py с --user флагом, чтобы попытаться получить его, чтобы установить в моем указанный /local каталог

python setup.py install --user 

Проблема заключается в том, не устанавливается ничего в моем /root/example/sub-example/local/lib/python2.7/site-packages каталоге, и вместо этого я найти что теперь у меня есть новый каталог у корня: /root/.local/lib/python2.7/site-packages

Есть ли способ предотвратить это? Я чувствую, что моя нехватка знаний на Python заставляет меня совершать какую-то глупую ошибку, которая, вероятно, очевидна для других. Спасибо за помощь!

+0

Почему вы ожидали, что '-user' сделает что-то другое? –

+0

Есть ли какой-то флаг, который я должен использовать для указания моего намеченного/локального пути? – jake9115

ответ

1

virtualenv - это то, что я рекомендовал бы для этого случая (и почти любой другой случай). Я использую его для почти всего, что я делаю в Python.

Это позволяет существенно создать песочницу, содержащий среду Python, который загрузился из Python установить на вашем компьютере, и установить все модули, которые вы хотите в него.

Это не должно, как правило, использовать sudo, так как вы не касаетесь установки системы. Вы можете вообще pip install модуль прямо в virtualenv, а затем вы запускаете свои скрипты из этого virtualenv. Вам в основном просто нужно место, которое вы можете прочитать/написать/выполнить, скажем, каталог, который вы создаете в своем вашего дома.

Вы можете следить за то, что установлено, делая pip freeze > requirements и убедившись, что в SCM, а затем новый virtualenv может быть воссоздан с помощью этого файла, готовый для запуска скриптов.

Ссылка, приведенная выше, содержит более подробную информацию о том, как использовать virtualenv.

Редактировать в ответ на комментарий от OP:

Вы все еще можете использовать pip install вне virtualenv, и я рекомендовал бы.Тем не менее, это может работать только с различными Python, которые могут быть на коробке (введите pip из каталога bin, который вы хотите использовать).

Однако это не будет работать для установки в произвольные каталоги. Для этого вы можете попытаться разархивировать файл (они должны быть zip-файлами) в нужный каталог, а затем убедитесь, что каталог находится на PYTHONPATH. Некоторые яйцо файлы доступны для прямой загрузки с PyPI, хотя некоторые из них являются исходными.

Я думаю, что подход намного сложнее и подвержен проблемам, чем virtualenv будет, однако.

+1

Я ценю понимание и буду смотреть на virtualenv, но можете ли вы также сказать мне, знаете ли вы, как просто установить в моем желаемом/локальном? – jake9115