pypiserver est un module fort pratique qui émule le serveur officiel PyPi.org.

Serveur

Commençons par créer notre environnement virtuel :

$ virtualenv pypi
$ source pypi/bin/activate

Ensuite, installons le serveur et démarrons-le :

# Le dossier "packages" sera la racine du serveur, où seront stockés les fichiers téléchargeables
$ mkdir pypi/packages
$ python -m pip install pypiserver
$ pypi-server --port 1234 -P . -a . --overwrite pypi/packages

Pour finir, cette commande créera le paquet de votre module et l'enverra directement sur le serveur local. La nouveauté, ici, est l'utilisation de l'option -r SERVER:PORT :

$ python setup.py sdist upload -r http://localhost:1234

Un mot de passe sera demandé, il sufit d'entre n'importe quoi et de valider en appuyant sur « Entrée ».

Client

Pour simuler un utilisateur qui installerait votre module :

# Assurons-nous que le module en question n'est pas encore installé
$ python -m pip uninstall --user nuxeo-drive
$ python -m pip install --user --extra-index-url http://localhost:1234 --trusted-host localhost nuxeo-drive

Historique

  • 2018-12-28 : Correction de l'option --trusted-store--trusted-host et utilisation de python -m pip ... au lieu de simplement pip ....