Как установить модули Python без рут-доступа? - PullRequest
210 голосов
/ 19 сентября 2011

Я посещаю некоторые университетские классы, и мне дали «учебный счет», который я могу использовать в школе для работы.Я хочу запустить на этой машине мой интенсивно вычислительный код Numpy, matplotlib, scipy, но я не могу установить эти модули, потому что я не системный администратор.

Как я могу выполнить установку?

Ответы [ 8 ]

284 голосов
/ 19 сентября 2011

В большинстве случаев лучшим решением является использование так называемого «пользовательского сайта» (подробности см. В PEP ):

pip install --user package_name

Ниже приведен более «ручной» способ из моего первоначального ответа, вам не нужно читать его, если вышеуказанное решение работает для вас.


С easy_install вы можете сделать:

easy_install --prefix=$HOME/local package_name

, который будет установлен в

$HOME/local/lib/pythonX.Y/site-packages

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

Вам нужно будет вручную создать

$HOME/local/lib/pythonX.Y/site-packages

и добавьте его в переменную окружения PYTHONPATH (в противном случае easy_install будет жаловаться - кстати, запустите указанную выше команду один раз, чтобы найти правильное значение для X.Y).

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

С пунктами вы можете использовать:

pip install --install-option="--prefix=$HOME/local" package_name
49 голосов
/ 19 декабря 2012

Нет прав доступа или установки easy_install?

Затем вы можете создать Python virtualenv (https://pypi.python.org/pypi/virtualenv) и установить пакет из этой виртуальной среды.

Достаточно будет выполнить 4 команды в оболочке (вставьте текущую версию, например 16.1.0 для X.X.X):

$ curl --location --output virtualenv-X.X.X.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xvfz virtualenv-X.X.X.tar.gz
$ python pypa-virtualenv-YYYYYY/src/virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install package_name

Источник и дополнительная информация: https://virtualenv.pypa.io/en/latest/installation/

12 голосов
/ 01 ноября 2015

Вы можете запустить easy_install для установки пакетов Python в свой домашний каталог, даже не имея root-доступа.Есть стандартный способ сделать это, используя site.USER_BASE, который по умолчанию имеет значение типа $ HOME / .local или $ HOME / Library / Python / 2.7 / bin и по умолчанию включен в PYTHONPATH

. Для этогосоздайте .pydistutils.cfg в своем домашнем каталоге:

cat > $HOME/.pydistutils.cfg <<EOF
[install]
user=1
EOF

Теперь вы можете запустить easy_install без привилегий root:

easy_install boto

В качестве альтернативы, это также позволяет запускать pip без доступа root:

pip install boto

Это работает для меня.

Источник из блога Уэсли Танаки: http://wtanaka.com/node/8095

9 голосов
/ 19 сентября 2011

Если вам нужно использовать скрипт distutils setup.py, есть несколько параметров командной строки для принудительного назначения места установки.См. http://docs.python.org/install/index.html#alternate-installation. Если эта проблема повторяется, вы можете настроить файл конфигурации distutils, см. http://docs.python.org/install/index.html#inst-config-files.

Настройка переменной PYTHONPATH описана в сообщении Тихоса.

6 голосов
/ 10 мая 2014

Важный вопрос. Сервер, который я использую (Ubuntu 12.04), имел easy_install3, но не pip3. Так я установил Pip и другие пакеты в свою домашнюю папку

  1. Попросил администратора установить пакет Ubuntu python3-setuptools

  2. Установленный пункт

Как это:

 easy_install3 --prefix=$HOME/.local pip
 mkdir -p $HOME/.local/lib/python3.2/site-packages
 easy_install3 --prefix=$HOME/.local pip
  1. Добавление Pip (и других приложений Python к пути)

Как это:

PATH="$HOME/.local/bin:$PATH"
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile
  1. Установить пакет Python

вот так

pip3 install --user httpie

# test httpie package
http httpbin.org
4 голосов
/ 02 ноября 2014

Я использую JuJu , который в основном позволяет иметь очень маленький дистрибутив linux (содержащий только менеджер пакетов) внутри вашего каталога $ HOME / .juju.

Это позволяет иметь вашу собственную систему внутри домашнего каталога, доступную через proot, и, следовательно, вы можете устанавливать любые пакеты без прав root. Он будет работать правильно для всех основных дистрибутивов Linux, единственное ограничение - JuJu может работать на ядре Linux с минимальной рекомендованной версией 2.6.32.

Например, после установки JuJu для установки pip просто наберите следующее:

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip
2 голосов
/ 04 мая 2017

Лучший и самый простой способ - это команда:

pip install --user package_name

http://www.lleess.com/2013/05/how-to-install-python-modules-without.html#.WQrgubyGOnc

1 голос
/ 22 мая 2019

Локальная установка virtualenv ( источник инструкций ):

Важно: Вставить текущую версию (например, 16.1.0) для XXX .
Проверьте имя извлеченного файла и вставьте его для ГГГГ .

$ curl -L -o virtualenv.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xfz virtualenv.tar.gz
$ python pypa-virtualenv-YYYYY/src/virtualenv.py env

Прежде чем вы сможете используйте или для установки любого пакета, необходимого для source вашей виртуальной среды Python env:

$ source env/bin/activate

Чтобы установить новые пакеты Python (например, numpy), используйте:

(env)$ pip install <package>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...