web-dev-qa-db-fra.com

Installation de paquets pip dans le dossier $ HOME

C'est possible? Lors de l'installation pip , installez les packages python dans mon dossier $HOME. (Par exemple, je souhaite installer Mercurial à l'aide de pip, mais à l'intérieur de $HOME au lieu de /usr/local)

Je suis avec une machine mac et je viens de penser à cette possibilité, au lieu de "polluer" mon /usr/local, je voudrais plutôt utiliser mon $HOME.

PEP370 est exactement à ce sujet. Est-ce qu'il suffit de créer un ˜/.local et de faire un pip install package suffisant pour que ces paquetages soient installés uniquement dans mon dossier $ HOME?

Bien que vous puissiez utiliser un virtualenv, vous n'en avez pas besoin. L'astuce consiste à passer l'argument PEP370 --user au script setup.py. Avec la dernière version de pip, vous pouvez le faire comme suit:

pip install --user Mercurial

Le script hg devrait alors être installé dans $HOME/.local/bin/hg et le reste du paquet hg dans $HOME/.local/lib/pythonx.y/site-packages/.

Notez que ce qui précède est vrai pour Python 2.6. Il y a eu un peu de controverse parmi les développeurs principaux de Python à propos de l'emplacement du répertoire approprié sur Mac OS X pour les installations user de style PEP370. Dans Python 2.7 et 3.2, l'emplacement sous Mac OS X a été modifié de $HOME/.local à $HOME/Library/Python. Cela pourrait changer dans une prochaine version. Mais pour l'instant, sur 2.7 (et 3.2, si hg était pris en charge sur Python 3), les emplacements ci-dessus seraient $HOME/Library/Python/x.y/bin/hg et $HOME/Library/Python/x.y/lib/python/site-packages.

451
Ned Deily

Je voudrais utiliser virtualenv à votre répertoire HOME.

$ Sudo easy_install -U virtualenv
$ cd ~
$ virtualenv .
$ bin/pip ...

Vous pouvez alors aussi modifier ~/.(login|profile|bash_profile), selon ce qui convient à votre Shell pour ajouter ~/bin à votre PATH, puis ce pip|python|easy_install serait celui utilisé par défaut.

20
Ross Patterson

Vous pouvez spécifier l'option -t (--target) pour spécifier le répertoire de destination. Voir pip install --help pour des informations détaillées. C'est la commande dont vous avez besoin:

pip install -t path_to_your_home package-name

par exemple, pour installer disons mxnet, dans mon répertoire $HOME, je tape:

pip install -t /home/foivos/ mxnet
15
Foivos