web-dev-qa-db-fra.com

Comment installer manuellement un module pypi sans pip/easy_install?

Je veux utiliser le module gntp pour afficher des notifications de type grille-pain pour un logiciel C/C++. Je veux empaqueter toutes les dépendances pour que le logiciel soit auto-exécutable sur un autre ordinateur.

Le module gntp est uniquement disponible via le programme d'installation pip, qui ne peut pas être utilisé (l'ordinateur qui exécute le logiciel n'a pas de connexion Internet): comment puis-je l'installer à partir des sources?

Je préférerais ne pas forcer l'utilisateur à installer easy_install/pip et à ajouter manuellement le chemin d'accès au chemin% PATH.

PS: J'utilise Python 2.7 sur une machine Windows.

55
lucasg
  1. Télécharger le package
  2. décompressez-le s'il est compressé
  3. cd dans le répertoire contenant setup.py
  4. Si des instructions d’installation figurent dans la documentation fournie, lisez et suivez les instructions AUTREMENT
  5. tapez python setup.py install

Vous aurez peut-être besoin de privilèges d'administrateur pour l'étape 5. Ce que vous faites ici dépend donc de votre système d'exploitation. Par exemple, dans Ubuntu, vous diriez Sudo python setup.py install 

EDIT - merci à kwatford (voir premier commentaire)

Pour éviter le besoin de privilèges d’administrateur à l’étape 5 ci-dessus, vous pourrez peut-être utiliser l’option --user. De cette manière, vous pouvez installer le package uniquement pour l'utilisateur actuel.

Les docs disent:

Les fichiers seront installés dans les sous-répertoires du site.USER_BASE (écrit ci-après comme userbase). Ce schéma installe des modules Python purs et des modules d'extension au même emplacement (également appelé site.USER_SITE). Voici les valeurs pour UNIX, y compris Mac OS X:

Plus de détails peuvent être trouvés ici: http://docs.python.org/2.7/install/index.html

91
Sheena

Pour expliquer plus en détail réponse de Sheena , j'avais besoin de setup-tools installé comme dépendance d'un autre outil, par exemple plusieurs outils .

Télécharger

Clique le Clone or download bouton et choisissez votre méthode. J'ai placé ceux-ci dans un répertoire dev/py/libs de mon répertoire personnel. Peu importe où ils sont sauvegardés, car ils ne seront pas installés là-bas.

Installation des outils de configuration

Vous devrez exécuter ce qui suit dans le répertoire setup-tools .

python bootstrap.py
python setup.py install

Installation des dépendances générales

Maintenant, vous pouvez naviguer vers le répertoire more-itertools et l’installer normalement.

  1. Télécharger le package
  2. Décompressez-le s'il s'agit d'une archive
  3. Naviguez (cd ...) dans le répertoire contenant setup.py
  4. Si des instructions d’installation figurent dans la documentation fournie, lisez et suivez les instructions AILLEURS.
  5. Tapez: python setup.py install
2
Mr. Polywhirl

Même si Sheena answer fait le travail, pip ne s'arrête pas là. 

De la réponse de Sheena:

  1. Télécharger le package
  2. décompressez-le s'il est compressé
  3. cd dans le répertoire contenant setup.py
  4. Si des instructions d’installation figurent dans la documentation fournie, lisez et suivez les instructions AUTREMENT
  5. tapez python setup.py install

À la fin de ceci, vous vous retrouverez avec un fichier .Egg dans site-packages. En tant qu'utilisateur, cela ne devrait pas vous déranger. Vous pouvez import et uninstall le paquet normalement. Cependant, si vous voulez le faire de la manière pip, vous pouvez continuer les étapes suivantes.

Dans le répertoire site-packages,

  1. unzip <.Egg file>
  2. renommer le répertoire Egg-INFO en <pkg>-<version>.dist-info
  3. Maintenant, vous verrez un répertoire séparé avec le nom du paquet, <pkg-directory>
  4. find <pkg-directory> > <pkg>-<version>.dist-info/RECORD
  5. find <pkg>-<version>.dist-info >> <pkg>-<version>.dist-info/RECORD. Le >> sert à empêcher l'écrasement.

En regardant maintenant le répertoire site-packages, vous ne réaliserez jamais que vous avez été installé sans pip. Pour uninstall, faites juste le pip uninstall <pkg> habituel. 

0
John Strood