Jak zainstalować moduły Pythona bez dostępu do roota?

Biorę udział w zajęciach uniwersyteckich i dostałem "konto instruktażowe" , czyli konto szkolne, na które mogę się zapisać do pracy. Chcę uruchomić mój komputerowo intensywny Kod Numpy, matplotlib, scipy na tej maszynie, ale nie mogę zainstalować tych modułów, ponieważ nie jestem administratorem systemu.

Jak mogę wykonać instalację?

Author: Michael Petrotta, 2011-09-19

7 answers

W większości sytuacji najlepszym rozwiązaniem jest polegać na tak zwanej lokalizacji "user site" (zobacz PEP po szczegóły), uruchamiając:

pip install --user package_name

Poniżej jest bardziej "ręczny" sposób z mojej oryginalnej odpowiedzi, nie trzeba go czytać, jeśli powyższe rozwiązanie działa dla Ciebie.


Z easy_install możesz zrobić:

easy_install --prefix=$HOME/local package_name

Który zainstaluje się w

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

(folder "lokalny" jest typową nazwą używaną przez wiele osób, ale oczywiście możesz określić dowolny folder, który posiadasz uprawnienia do zapisu).

Będziesz musiał ręcznie utworzyć

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

I dodać go do zmiennej środowiskowej PYTHONPATH (w przeciwnym razie easy_install będzie narzekać -- btw Uruchom powyższe polecenie raz, aby znaleźć poprawną wartość dla X. Y).

Jeśli nie używasz easy_install, poszukaj opcji prefiksu, większość skryptów instalacyjnych pozwala określić jeden.

Z pip możesz użyć:

pip install --install-option="--prefix=$HOME/local" package_name
 248
Author: tiho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-17 19:49:19

Brak uprawnień dostępu ani instalacji easy_install?

Następnie możesz utworzyć Pythona virtualenv (https://pypi.python.org/pypi/virtualenv ) i zainstalować pakiet z tego środowiska wirtualnego.

Wykonanie 3 komend w powłoce wystarczy:

$ 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

Źródło i więcej informacji: https://virtualenv.pypa.io/en/latest/installation/

 41
Author: tremendows,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-20 10:59:25

Możesz uruchomić easy_install, aby zainstalować pakiety Pythona w katalogu domowym, nawet bez dostępu do roota. Jest standardowy sposób, aby to zrobić za pomocą strony.USER_BASE, który domyślnie ma wartość $HOME/.local or $HOME/Library/Python/2.7 / bin and is included by default on the PYTHONPATH

Aby to zrobić, utwórz .pydistutils.cfg w katalogu domowym:

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

Teraz możesz uruchomić easy_install bez uprawnień roota:

easy_install boto

Alternatywnie, to również pozwala uruchomić pip bez root access:

pip install boto
To mi pasuje. Źródło z bloga Wesleya Tanaki: http://wtanaka.com/node/8095
 10
Author: yusong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-01 16:48:38

Jeśli musisz użyć skryptu distutils setup.py, istnieje kilka opcji wiersza poleceń do wymuszenia miejsca docelowego instalacji. Zobacz http://docs.python.org/install/index.html#alternate-installation. Jeśli problem się powtórzy, możesz skonfigurować plik konfiguracyjny distutils, Zobacz http://docs.python.org/install/index.html#inst-config-files .

Ustawienie zmiennej PYTHONPATH jest opisane w poście tihos.

 8
Author: rocksportrocker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-19 10:51:45

Ważne pytanie. Serwer, którego używam (Ubuntu 12.04) miał easy_install3, ale nie pip3. W ten sposób zainstalowałem Pip, a następnie inne pakiety do mojego folderu domowego

  1. Poprosił admina o zainstalowanie pakietu Ubuntu python3-setuptools

  2. Zainstalowany pip

Tak:

 easy_install3 --prefix=$HOME/.local pip
 mkdir -p $HOME/.local/lib/python3.2/site-packages
 easy_install3 --prefix=$HOME/.local pip
    [[9]} Dodaj Pip (i inne aplikacje Pythona do ścieżki)

Tak:

PATH="$HOME/.local/bin:$PATH"
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile
  1. Install Python package

Like this

pip3 install --user httpie

# test httpie package
http httpbin.org
 5
Author: Colonel Panic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-09 22:34:24

Używam JuJu , który w zasadzie pozwala na posiadanie naprawdę malutkiej dystrybucji Linuksa (zawierającej tylko menedżera pakietów) wewnątrz $HOME/.katalog juju.

Pozwala na posiadanie własnego systemu wewnątrz katalogu domowego dostępnego przez proot i dlatego można instalować dowolne pakiety bez uprawnień roota. Będzie działać poprawnie we wszystkich głównych dystrybucjach Linuksa, jedynym ograniczeniem jest to, że JuJu może działać na jądrze linux z minimalną zalecaną wersją 2.6.32.

Na przykład, po zainstalowaniu JuJu aby zainstalować pip wystarczy wpisać:

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip
 2
Author: user967489,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-02 18:21:50

Najlepszym i najłatwiejszym sposobem jest polecenie:

pip install --user package_name

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

 1
Author: user3108764,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-04 08:21:14