web-dev-qa-db-fra.com

Comment installer python modules sans accès root?

Je suis des cours à l'université et on m'a donné un "compte d'enseignement", c'est-à-dire un compte d'école dans lequel je peux travailler. Je souhaite exécuter mon code numpy, matplotlib, scipy, très gourmand en calcul, 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?

210
Rishi

Dans la plupart des situations, la meilleure solution consiste à utiliser l'emplacement dit "site utilisateur" (voir le PEP pour plus de détails) en exécutant:

pip install --user package_name

Vous trouverez ci-dessous une manière plus "manuelle" de ma réponse originale. Vous n'avez pas besoin de la lire si la solution ci-dessus vous convient.


Avec easy_install vous pouvez faire:

easy_install --prefix=$HOME/local package_name

qui va installer dans

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

(le dossier 'local' est un nom typique utilisé par de nombreuses personnes, mais vous pouvez bien sûr spécifier tout dossier dans lequel vous êtes autorisé à é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 lance la commande ci-dessus une fois pour trouver la valeur correcte pour X.Y).

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

Avec pip, vous pouvez utiliser:

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

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

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

L'exécution de 4 commandes dans le shell suffira (insérez la version actuelle telle que 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 informations supplémentaires: https://virtualenv.pypa.io/en/latest/installation/

49
tremendows

Vous pouvez exécuter easy_install pour installer les packages 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 quelque chose comme $ HOME/.local ou $ HOME/Library/Python/2.7/bin et est inclus par défaut sur PYTHONPATH.

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

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

Vous pouvez maintenant lancer easy_install sans les privilèges root:

easy_install boto

Alternativement, cela vous permet également de lancer pip sans accès root:

pip install boto

Cela fonctionne pour moi.

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

12
yusong

Si vous devez utiliser un script distutils setup.py, il existe certaines options de ligne de commande permettant de 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 .

La définition de la variable PYTHONPATH est décrite dans tihos post.

9
rocksportrocker

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. A 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 un Pip (et d'autres Python applications au chemin)

Comme ça:

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

comme ça

pip3 install --user httpie

# test httpie package
http httpbin.org
6
Colonel Panic

J'utilise JuJ , ce qui permet d'avoir une très petite distribution Linux (contenant uniquement le gestionnaire de paquets) dans votre répertoire $ HOME/.juju.

Il vous permet d’avoir votre système personnalisé dans le répertoire personnel accessible via proot et, par conséquent, vous pouvez installer n’importe quel paquet sans privilèges root. Il fonctionnera correctement sur toutes les principales distributions Linux. La seule limitation est que JuJu peut être exécuté sur un noyau Linux avec la version minimum recommandée 2.6.32.

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

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

Le meilleur et le plus simple est cette commande:

pip install --user package_name

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

2
user3108764

Installez virtualenv localement ( source d'instructions ):

Important: Insérez la version actuelle (comme 16.1.0 ) pour XXX .
Vérifiez le nom du fichier extrait et insérez-le pour 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

Avant de pouvoir , utilisez ou installez tout package dont vous avez besoin pour source votre environnement virtuel Python. env:

$ source env/bin/activate

Pour installer les nouveaux packages python (comme numpy), utilisez:

(env)$ pip install <package>
1
Niklas