Как установить модули python без доступа root?

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

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

Ответ 1

В большинстве ситуаций лучшим решением является использование так называемого местоположения "пользовательского сайта" (подробнее см. 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 будет жаловаться - btw выполните команду выше, чтобы найти правильное значение для X.Y).

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

С помощью pip вы можете использовать:

pip install --install-option="--prefix=$HOME/local" package_name

Ответ 2

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

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

Выполнение 3 команд в оболочке будет достаточно:

$ curl -O https://raw.github.com/pypa/virtualenv/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install package_name

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

Ответ 3

Вы можете запустить 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

Кроме того, это также позволяет запускать протокол без доступа root:

pip install boto

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

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

Ответ 4

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

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

Ответ 5

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

  • Заданный администратор для установки пакета Ubuntu python3-setuptools

  • Установленный пик

Вот так:

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

Вот так:

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

как это

pip3 install --user httpie

# test httpie package
http httpbin.org

Ответ 6

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

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

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

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip

Ответ 8

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

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

$ 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>