Comment installer des modules python sans accès root?

je prends des cours à l'université et on m'a donné un "compte-rendu d'enseignement", qui est un compte-rendu d'école dans lequel je peux travailler. Je veux exécuter mon code computationally intensive Numpy, matplotlib, scipy sur cette machine, mais je ne peux pas installer ces modules parce que je ne suis pas un administrateur système.

Comment faire l'installation?

181
demandé sur Michael Petrotta 2011-09-19 04:41:50

7 réponses

dans la plupart des cas, la meilleure solution est de se fier à l'emplacement du "site Utilisateur" (voir le PEP pour plus de détails) en exécutant:

pip install --user package_name

ci-dessous est une façon plus" manuelle " de ma réponse originale, vous n'avez pas besoin de le lire si la solution ci-dessus fonctionne pour vous.


avec easy_install vous pouvez faire:

easy_install --prefix=$HOME/local package_name

qui s'installera dans

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

(le dossier' local ' est un nom typique que beaucoup de gens utilisent, mais bien sûr vous pouvez spécifier n'importe quel dossier dans lequel vous avez des permissions à écrire).

, Vous devrez créer manuellement

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

et l'ajouter à votre variable d'environnement PYTHONPATH (sinon easy_install se plaindra -- btw exécutera la commande ci-dessus une fois pour trouver la valeur correcte pour X. Y).

si vous n 'utilisez pas easy_install , regardez pour une option de préfixe, la plupart des scripts d'installation vous permettent d'en spécifier un.

avec pip vous pouvez utiliser:

pip install --install-option="--prefix=$HOME/local" package_name
248
répondu tiho 2016-10-17 19:49:19

pas de permissions pour accéder ou installer easy_install ?

ensuite, vous pouvez créer un python virtualenv ( https://pypi.python.org/pypi/virtualenv ) et installer le paquet à partir de cet environnement virtuel.

il suffit D'Exécuter 3 commandes dans le shell:

$ 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

Source et plus d'information: https://virtualenv.pypa.io/en/latest/installation/

41
répondu tremendows 2018-03-20 10:59:25

vous pouvez exécuter easy_install pour installer des paquets python dans votre répertoire personnel, même sans accès root. Il y a une façon standard de le faire en utilisant le site.USER_BASE qui est par défaut à quelque chose comme $HOME/.local ou $HOME / Library / Python / 2.7 / bin et est inclus par défaut sur PYTHONPATH

pour ce faire, créer un .pydistutils.cfg dans votre répertoire d'accueil:

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

Maintenant vous pouvez exécuter easy_install sans privilèges root:

easy_install boto

alternativement, cela vous permet aussi d'exécuter pip sans accès root:

pip install boto

ça me va.

Source tirée du blog de Wesley Tanaka: http://wtanaka.com/node/8095

10
répondu yusong 2015-11-01 16:48:38

si vous devez utiliser un script distutils setup.py , il y a quelques options de ligne de commande pour forcer une destination d'installation. Voir http://docs.python.org/install/index.html#alternate-installation . Si ce problème se répète, vous pouvez configurer un fichier de configuration distutils, voir http://docs.python.org/install/index.html#inst-config-files .

définir la variable PYTHONPATH est décrit dans tihos post.

8
répondu rocksportrocker 2011-09-19 10:51:45

question importante. Le serveur que j'utilise (Ubuntu 12.04) avait easy_install3 mais pas pip3 . C'est comme ça que J'ai installé Pip et puis d'autres paquets dans mon dossier personnel

  1. a demandé à l'administrateur d'installer le paquet Ubuntu python3-setuptools

  2. Pip installé

comme ceci:

 easy_install3 --prefix=$HOME/.local pip
 mkdir -p $HOME/.local/lib/python3.2/site-packages
 easy_install3 --prefix=$HOME/.local pip
  1. ajouter Pip (et autres Python les applications de chemin de)

comme ceci:

PATH="$HOME/.local/bin:$PATH"
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile
  1. Installer le paquet Python

comme ceci

pip3 install --user httpie

# test httpie package
http httpbin.org
5
répondu Colonel Panic 2014-05-09 22:34:24

j'utilise JuJu qui permet essentiellement d'avoir une distribution linux vraiment minuscule (contenant juste le gestionnaire de paquets) à l'intérieur de votre $HOME/.juju répertoire.

il permet d'avoir votre système personnalisé à l'intérieur du répertoire d'accueil accessible via proot et, par conséquent, vous pouvez installer tous les paquets sans privilèges root. Il fonctionnera correctement sur toutes les principales distributions linux, la seule limitation est que JuJu peut fonctionner sur le noyau linux avec minimum recommandés de la version 2.6.32.

par exemple, après avoir installé JuJu pour installer pip tapez juste ce qui suit:

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip
2
répondu user967489 2014-11-02 18:21:50

la meilleure et la plus facile est cette commande:

pip install --user package_name

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

1
répondu user3108764 2017-05-04 08:21:14