web-dev-qa-db-fra.com

Pip installer le package python dans un répertoire spécifique autre que l'emplacement d'installation par défaut

L'emplacement par défaut où pip installe les paquets sur mon système Ubuntu est '/usr/local/lib/pytho2.7/dist-packages/', ce qui est généralement le cas par défaut. J'utilise la distribution python Enthought (EPD pas canopy) et j'aimerais installer un paquet dans EPD car je travaille habituellement avec le python de la distribution EPD sur mon système. Je voudrais savoir dans quel répertoire de EPD les nouveaux fichiers doivent être installés avec pip; comme la structure de répertoires pour EPD sur Linux semble être assez différente de la structure de répertoires EPD sur MAC OS pour laquelle il semble y avoir de nombreux exemples.

Aussi je suis tombé sur ceci:

pip install --install-option="--prefix=$PREFIX_PATH" package_name

comme la réponse acceptée à une question semblable à celle-ci. J'aimerais savoir quel est l'objectif de la variable d'environnement $ PREFIX_PATH, car la mienne est actuellement vide. Et quel chemin je dois spécifier sur Ubuntu pour ma distribution Enthought EPD pour installer des modules python.

Je m'excuse pour la question relativement naïve, mais je suis assez novice sur EPD sur Ubuntu et j'essaie toujours de la comprendre.

17
user2502020

Cette ligne devrait fonctionner pour tout le monde, comme indiqué dans la documentation .

pip install package_name -t any/path/i/like

PS:

Et pour répondre au commentaire de @CPiLL, le any/path/i/like peut vraiment être n'importe quoi, tel que /tmp/my-test-env. Le paquetage installé de cette manière ET NON ne sera pas disponible pour votre environnement Python habituel. En fait, ils ne s'afficheront PAS avec pip list. Et python -c "import package_name" sera généralement FAIL avec une exception ImportError, à moins que vous n'ayez d'abord cdd dans ce dossier:

cd /tmp/my-test-env
python -c "import package-name"

L'utilité de cette technique va au-delà de cette réponse.

20
RayLuo

Système: Ubuntu 12.04, Enthought Python Distribution (c’est là que je voulais installer un nouveau module python)

La variable d'environnement prefix_path ne fonctionnait donc pas pour moi et pip continuait de l'installer à l'emplacement par défaut. Mais j'ai utilisé Comment changer le répertoire par défaut dans lequel pip installe?

question comme guide. Et l'une des réponses m'a aidé à atteindre ce dont j'avais besoin.

 pip install -d <path_to_my_directory>  

Pour le chemin que j'ai utilisé: path_to_epd_directory/lib/python2.7/site-packages

Cela met le fichier tar.gz dans les paquets de site

Puis extrayez-le en utilisant: 

tar -zxvf pymodule.tar.gz

un répertoire nommé pymodule est créé, cd dans ce module et tapez:

 python setup.py install

et cela devrait faire le travail.

4
user2502020

Cela a fonctionné pour moi sur Ubuntu Gnome 17.04 . Installer PyMySQL dans un répertoire spécifique:

Sudo pip install PyMySQL -t /home/mahmoud/app
1
mahmoud alaa

_ {Cette réponse a fonctionné sous Windows OS} _
Réponse courte: Pour installer un package dans un dossier spécifique à l'aide de l'option -t ex: pip install packageX -t lib/, puis ajoutez ce dossier à PYTHONPAHT 

Longue réponse:

  1. installer virtualenv dans le dossier .env

  2. pip install avec l'option -t, exemple d'installation dans le dossier lib de mon projet (nommé 3)
    (.env) d:\tmp\3>pip install packageX -t lib/

  3. afficher la liste des forfaits:

    (.env) d:\tmp\3>pip list
    Package    Version
    ---------- ----------
    pip        18.1
    setuptools 40.6.3
    ...
  1. Vous ne voyez pas votre colis? ouvrez l'invite de commande en tant qu'administrateur à droite et définissez PYTHONPATH

 enter image description here

  1. maintenant, les nouvelles commandes Invite et activer env verront vos paquets  enter image description here
0
nguyên

Au lieu de cela, vous pouvez utiliser une copie de pip qui a été installée dans votre installation EPD. 

$ path-to-EPD/bin/enpkg pip # Or simply enpkg pip, if EPD is on your PATH. 
$ path-to-EPD/bin/pip install <package-name>
0
punchagan