Configurer un index de package privé de projet

Aperçu

Ce document décrit la configuration d'un index de package privé comme un moyen plus pratique de distribuer des packages Python.

La nécessité d'utiliser quelque chose comme celle-ci se développe à mesure que nous ajoutons des mainteneurs et des packages à maintenir.

Nos packages Python doivent être compatisés avec l'index de package Python standard PYPI.

Nous utilisons un index de packages privé jusqu'à ce que nous soyons prêts à mettre un colis à la disposition du grand public, Ensuite, nous passons à PYPI.

Cet outil que nous utilisons maintient nos packages compatibles avec PYPI lorsque nous le mettons à la disposition là-bas.

devpi

Il s'agit d'un système d'index de package conforme.

Nous l'utiliserons pour servir notre index de package privé.

Configuration du SW pour DevPI

Ce howto est dérivé du tutoriel suivant:

<https://devpi.net/docs/devpi/devpi/stable/+doc/quickstart-releaseprocess.html> _

Nous travaillons avec Python3. Nous voulons configurer un environnement virtuel conforme à nos hypothèses, puis installer à l'intérieur. Nous appelons l'environnement devpi_venv. Nous créons d'abord un répertoire pour notre configuration.

mkdir ${HOME}/devpi_setup
cd ${HOME}/devpi_setup

Nous installons les éléments essentiels nus.

python3 -m venv devpi_venv
source devpi_venv/bin/activate
python -m pip install -U pip
pip install wheel
pip install setuptools
pip install twine

RESTVIEW est une visionneuse de format de texte restructuré que je trouve utile.(facultatif)

pip install restview

Vous l'invoquez et il continue de réintégrer votre fichier lorsque vous le modifiez.

Comme ça:

restview README.rst

rst2pdf est pratique pour générer des copies PDF de documants.

pip install rst2pdf
rst2pdf doc/privatepypi.rst -o reformatted_docs/privatepypi.pdf

Configurez le serveur DevPI sur notre ordinateur portable

Installez le client et le serveur Web DevPI Le serveur non Web - DevPI-Server - est installé en conséquence.

pip install -U devpi-web devpi-client

Initialiser un index vide (AT / var / devpi-serveur par défaut) Remarque J'ai eu un problème d'autorisation avec celui init. Alors d'abord je fais manuellement ceci:

sudo mkdir  /var/devpi-server
sudo chown ubuntu:ubuntu /var/devpi-server
devpi-init

Nous voulons un fichier de configuration pour le démon de superviseur à utiliser. Cela générera un tas de fichiers de configuration sous le courant Répertoire, celui que nous voulons inclus.

cd ${HOME}/devpi_setup
devpi-gen-config

Cela nous donne le fichier gen-config / supervisor-devpi.conf pour copier sur / etc / superviseur / conf pour que nous puissions commencer augmentez le serveur.J'ai commencé par le modifier pour dire start = false pour qu'il devrait être démarré Up manuellement.Ensuite, je l'ai copié au bon endroit pour cela.

sudo cp gen-config/supervisor-devpi.conf /etc/supervisor/conf.d/devpi-server.conf
sudo supervisorctl update
sudo supervisorctl start devpi-server

Créez un utilisateur, connectez-vous comme lui et créez l'index 'dev'

devpi user -c pbernatchez password=foobar
devpi login pbernatchez --password=foobar
devpi index -c dev bases=root/pypi

Utilisez notre index de développement

devpi use testuser/dev

Nous pouvons désormais uriliaer l'index privé.

Nous utilisons Flit pour publier sur notre index et repose sur le fichier: ~ / .pypirc.

Nous y faisons donc une entrée pour notre index.Je lui ai donné le nom «myPyPi»:

[distutils]
index-servers =
   mypypi
   testpypi

[mypypi]
repository = http://localhost:3141/pbernatchez/dev
username = pbernatchez

[testpypi]
repository = https://test.pypi.org/legacy/
username = pbernatchez

À partir de maintenant, en utilisant Flit, nous pouvons le désigner «myPyPi».

deactivate
cd /home/ubuntu/allrepos/animbboard
source ${HOME}/venv_animbboard/bin/activate
flit build
flit publish --repository mypypi
pip uninstall  animbboard
pip install -i http://localhost:3141/pbernatchez/dev  animbboard
Publié le par Pierre Bernatchez dans «outils de programmation». Mots-clés: logiciel, outils