Как установить модули 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, а затем другие пакеты в свою домашнюю папку
Вот так:
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
как это
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
Ответ 7
Самый лучший и простой способ - это команда:
pip install --user package_name
http://www.lleess.com/2013/05/how-to-install-python-modules-without.html#.WQrgubyGOnc
Ответ 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>