Как проще всего выполнить локальную установку пакета python?

32

Я не хочу иметь дело с virtualenv для локальной установки Python, я просто хочу установить несколько пакетов локально, не имея дело с PYTHONPATHпеременной окружения, как мне это сделать?

Арон Ахмадия
источник
Вы говорите «иметь дело с», как если бы virtualenv был хлопот. Я нашел прямо противоположное, чтобы быть правдой. (Может быть, вы хотите --system-site-packages?)
Андреас Клёкнер
он был гипотетически задан :) virtualenv потрясающий, но он не подходит для каждого варианта использования.
Арон Ахмадиа

Ответы:

48

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

Если вы уже загрузили пакет fooи хотите установить его вручную, введите:

cd path/to/foo
python setup.py install --user

Если вы используете easy_install и хотите, чтобы пакет был загружен и установлен:

easy_install --prefix=$HOME/.local/ foo

Обновление от РафиК

pip install --user foo

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

pip install --install-option="--prefix=$HOME/.local" foo
Арон Ахмадия
источник
3
обновление: pip теперь поддерживает флаг --user: pip install --user SomePackage (ссылка на руководство). При этом все должно работать "из коробки", даже на разных ОС
RafiK
5

Хотя мне нравится Python как язык, распространение пакетов Python - беспорядок. Я всегда нахожу людей, не знакомых с Python, борющимися с ним.

Помимо локальной пользовательской установки, описанной Aron (с использованием --user или --prefix), другой вариант - EasyBuild ( http://hpcugent.github.com/easybuild/ ). Не только для пакетов Python, но и для любого (научного) программного пакета. Как только EasyBuild получит поддержку, сборка и установка программного пакета - это в основном одна команда.

Список поддерживаемых в настоящее время пакетов программного обеспечения см. По адресу https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages .

Отказ от ответственности: я разработчик EasyBuild.

Кеннет Хост
источник
2

@Aron: Обязательно добавьте локальный путь к пакетам сайтов в переменную среды $ PYTHONPATH

corion
источник
Начиная
@ AronAhmadia нет, если вы используете эту --prefixопцию.
Дженс Тиммерман
@JensTimmerman - путь к сайту - это то, куда Python смотрит, когда он запускает импорт модулей, каждый раз, когда вы запускаете Python. Параметр prefix указывает, куда устанавливать данный пакет при установке пакета Python. Два совершенно разных понятия.
Арон Ахмадиа
@AronAhmadia да, я хочу сказать, что когда вы используете easy_install --prefix = / tmp, вам нужно добавить «/tmp/lib/pythonx.x/site-packages» в переменную PYTHONPATH, иначе она не будет подхвачена python.
Йенс Тиммерман
@AronAhmadia pastebin.com/6FCTetCc
Дженс Тиммерман,