233 votes

Comment installer des modules python sans accès Root ?

Je suis des cours à l'université et on m'a donné un "compte pédagogique", c'est-à-dire un compte d'école auquel je peux me connecter pour travailler. Je veux exécuter mon code de calcul intensif Numpy, matplotlib, scipy sur cette machine, mais je ne peux pas installer ces modules car je ne suis pas administrateur système.

Comment puis-je faire l'installation ?

14 votes

Vous pouvez passer --user ou --prefix à setup.py pour le paquet que vous installez afin de l'installer localement. Voir installation alerte pour les modules Python

320voto

tiho Points 1211

Dans la plupart des situations, la meilleure solution consiste à s'appuyer sur l'emplacement dit "site de l'utilisateur" (voir l PEP pour plus de détails) en courant :

pip install --user package_name

Vous trouverez ci-dessous une méthode plus "manuelle" de ma réponse originale, mais vous n'avez pas besoin de la lire si la solution ci-dessus fonctionne pour vous.


Avec easy_install vous pouvez le 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 vous pouvez bien sûr spécifier n'importe quel dossier dans lequel vous avez les droits d'écriture).

Vous devrez créer manuellement

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

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

Si vous n'utilisez pas easy_install cherchez 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

1 votes

Que faire si python n'a pas pip et easy_install disponible ?

0 votes

L'installation s'est déroulée sans problème (méthode pip), mais l'importation de package_name ne fonctionne pas. Dois-je modifier/ajouté certaines configurations ? De plus, où l'installation a-t-elle été copiée (par dossier) ?

0 votes

Que faire si vous êtes derrière un pare-feu d'entreprise qui bloque l'accès à Internet et que vous ne pouvez copier des fichiers qu'à partir d'un lecteur réseau ?

51voto

tremendows Points 852

Aucune autorisation d'accès ou d'installation easy_install ?

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

L'exécution de 4 commandes dans le shell sera suffisante (insérez la version actuelle comme 16.1.0 pour 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

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

1 votes

Cette réponse m'a été utile sur un système ne disposant pas de pip installé.

0 votes

J'ai essayé une variante pour mon installation locale de python. curl --silent --show-error --retry 5 bootstrap.pypa.io/get-pip.py | ~/Python-2.7.8/python

4 votes

La source semble avoir été déplacée et ce qui précède ne fonctionne pas à partir de la boîte. Les instructions similaires à https://virtualenv.pypa.io/en/latest/installation/ fonctionnent bien cependant :)

13voto

yusong Points 158

Vous pouvez exécuter easy_install pour installer des paquets python dans votre répertoire personnel, même sans accès Root. Il existe un moyen standard de le faire en utilisant site.USER_BASE qui prend par défaut la valeur $HOME/.local ou $HOME/Library/Python/2.7/bin et qui est inclus par défaut dans le PYTHONPATH.

Pour ce faire, créez un fichier .pydistutils.cfg dans votre répertoire personnel :

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 également d'exécuter pip sans accès Root :

pip install boto

Cela fonctionne pour moi.

Source : blog de Wesley Tanaka : http://wtanaka.com/node/8095

1 votes

Cela a fonctionné pour moi pour installer sans accès Root sur un serveur linux. Merci, mais je n'ai aucune idée de la raison pour laquelle cela a fonctionné. Quelqu'un peut-il me donner un indice ?

9voto

rocksportrocker Points 3031

Si vous devez utiliser un distutils setup.py script, il existe quelques options en 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 mettre en place un fichier de configuration de distutils, cf. http://docs.python.org/install/index.html#inst-config-files .

Le paramétrage de la variable PYTHONPATH est décrit dans le billet de Tihos.

1 votes

Merci beaucoup. J'ai installé avec succès lxml bibliothèque utilisant python <lxml_distrib_dir>/setup.py install --home=<dir>

8voto

Colonel Panic Points 18390

Question importante. Le serveur que j'utilise (Ubuntu 12.04) avait easy_install3 mais pas pip3 . Voici comment j'ai installé Pip, puis d'autres paquets dans mon dossier personnel.

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

  2. Pip installé

Comme ça :

 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 d'autres applications Python au chemin)

Comme ça :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X