Quelle est la façon la plus simple de faire une installation locale d'un utilisateur d'un package python?


32

Je ne veux pas traiter avec virtualenv pour une installation Python locale, je veux juste installer quelques paquets localement sans traiter la PYTHONPATHvariable d'environnement, comment faire?


Vous dites "gérer" comme si virtualenv était un problème. J'ai trouvé l'exact opposé vrai. (Peut-être que vous voulez --system-site-packages?)
Andreas Klöckner

il a été posé hypothétiquement :) virtualenv est génial mais il ne convient pas à tous les cas d'utilisation.
Aron Ahmadia

Réponses:


48

Python (à partir de 2.6 et 3.0 ) recherche désormais dans le répertoire ~ / .local les installations locales, qui ne nécessitent pas de privilèges administratifs pour l'installation, il vous suffit donc de pointer votre programme d'installation vers ce répertoire.

Si vous avez déjà téléchargé le package fooet souhaitez l'installer manuellement, tapez:

cd path/to/foo
python setup.py install --user

Si vous utilisez easy_install et souhaitez que le package soit téléchargé et installé:

easy_install --prefix=$HOME/.local/ foo

Mise à jour par RafiK

pip install --user foo

La réponse suivante est fournie à des fins historiques: c'est un peu plus de travail si vous utilisez pip pour télécharger et installer:

pip install --install-option="--prefix=$HOME/.local" foo

3
mise à jour: pip prend désormais en charge un indicateur --user: pip install --user SomePackage (lien vers le manuel) En utilisant cela, tout devrait fonctionner hors de la boîte, même sur différents systèmes d'exploitation
RafiK

5

Même si j'aime Python en tant que langage, la distribution de packages Python est un gâchis. Je trouve toujours des gens qui ne connaissent pas Python qui se débattent avec.

À côté de l'installation utilisateur locale décrite par Aron (en utilisant --user ou --prefix), une autre option est EasyBuild ( http://hpcugent.github.com/easybuild/ ). Non seulement pour les packages Python, mais pour tout package logiciel (scientifique). Une fois EasyBuild pris en charge, la création et l'installation d'un package logiciel sont essentiellement une commande unique.

Pour une liste des packages logiciels actuellement pris en charge, voir https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages .

Avertissement: je suis un développeur d'EasyBuild.


2

@Aron: assurez-vous d'ajouter le chemin d'accès local des packages de site à la variable d'environnement $ PYTHONPATH


Il est automatiquement inclus dans le chemin du site à partir de Python 2.6 et Python 3.0 :)
Aron Ahmadia

@AronAhmadia pas si vous utilisez l' --prefixoption.
Jens Timmerman

@JensTimmerman - le chemin du site est l'endroit où Python regarde quand il démarre pour les modules à importer, chaque fois que vous exécutez Python. L'option préfixe spécifie où installer un package donné lorsque vous installez un package Python. Deux notions complètement distinctes.
Aron Ahmadia

@AronAhmadia oui, mon point est que lorsque vous utilisez easy_install --prefix = / tmp, vous devez ajouter "/tmp/lib/pythonx.x/site-packages" à votre variable PYTHONPATH ou il ne sera pas récupéré par python.
Jens Timmerman

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.