Configurar un índice de paquetes privados de proyecto

Descripción general

Este documento describe la configuración de un índice de paquetes privados como una forma más conveniente de distribuir paquetes de Python.

La necesidad de usar algo como esto crece a medida que agregamos mantenedores y paquetes para mantener.

Nuestros paquetes de Python deben ser compatiles con el Pypi estándar de Pypi Index Pypi.

Utilizamos un índice de paquete privado hasta que estemos listos para hacer que un paquete esté disponible para el público en general, Luego cambiamos a Pypi.

Esta herramienta que estamos utilizando mantiene nuestros paquetes compatibles con PYPI para cuando la ponemos a disposición allí.

devpi

Es un sistema de índice de paquetes conforme.

We will use it to serve our private package index.

Configuring the SW for devpi

Este cómo se deriva del siguiente tutorial:

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

We are working with python3. Queremos configurar un entorno virtual que se ajuste a nuestros supuestos y luego instalar dentro de eso. Llamamos al entorno devpi_venv. Creamos un directorio para nuestra configuración primero.

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

Instalamos los elementos esenciales desnudos.

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 es un visor de formato de texto reestructurado que encuentro útil.(opcional)

pip install restview

Usted lo invoca y sigue reenviando su archivo a medida que lo modifica.

Como esto:

restview README.rst

rst2pdf es conveniente para generar copias PDF de .rst documuents.

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

Configurar el servidor DevPI en nuestra computadora portátil

Instale el cliente Devpi y el servidor web El servidor no web, DevPI -servidor, se instala como consecuencia.

pip install -U devpi-web devpi-client

Inicializar un índice vacío (AT /VAR /DevPI-Merver de forma predeterminada) Tenga en cuenta que tenía un problema de permisos con el init. Así que primero hago esto manualmente:

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

Queremos que use un archivo de configuración para Supervisor Daemon. Esto generará un montón de archivos de configuración en el actual Directorio, el que queremos incluir.

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

Esto nos da el archivo gen-config/supervisor-devpi.conf Copiar a/etc/supervisor/conf para que podamos comenzar arriba del servidor.Empecé editándolo para decir inicio = falso para que deba comenzar arriba manualmente.Luego lo copié al lugar correcto para ello.

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

Crear un usuario, iniciar sesión como él y crear el índice 'Dev'

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

Utilice nuestro índice de desarrollo

devpi use testuser/dev

Ahora podemos hacer uso del índice privado.

Estamos utilizando Flit para publicar en nuestro índice y confía en el archivo: ~/.pypirc.

Entonces hacemos una entrada allí para nuestro índice.Le di el nombre 'mypypi':

[distutils]
index-servers =
   mypypi
   testpypi

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

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

De aquí en adelante, usando Flit, podemos referirlo como '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
Publicado el par Pierre Bernatchez dans «herramientas de programación». Palabras clave: software, herramientas