Emballage et déploiement du projet Python (3) : processus opérationnel réel d'emballage et de déploiement

Autres chapitres

Dans le processus de développement de projet réel, des processus standardisés de packaging et de déploiement de projets, pour les projets open source, peuvent vous aider à publier le projet dans un entrepôt public pour faciliter le téléchargement et l'installation des utilisateurs. Pour les projets commerciaux, vous pouvez établir un serveur PyPi privé sur un serveur cloud pour réaliser la publication en ligne et améliorer l'efficacité du déploiement.

Processus de packaging et de déploiement du projet Python

  1. Créer et configurer des projets
  2. Projet de package
  3. Téléchargez le projet sur PyPi ou un référentiel privé
  4. Télécharger et installer des projets

Composant de publication du projet

Insérer la description de l'image ici
Après l'empaquetage, deux composants de publication principaux (artefact) seront générés

  • Package de fichiers source : fichier source Python, abrégé en sdist, comprenant .py, fichiers de ressources, fichiers de données, etc.
  • Le package binaire , au format binaire compilé, généralement au format roue, peut également être fusionné et empaqueté avec des bibliothèques tierces non Python. Son installateur est pip.

Il existe deux formats de packages binaires Python : Whee et Egg. Le format Egg a été introduit par setuptools en 2004, et le format Wheel a été introduit dans PEP 427 en 2012. Wheel est actuellement considéré comme la norme pour l'empaquetage intégré et binaire de Python.

3. Introduction aux outils d'emballage

Le plus ancien outil d'empaquetage Python est distutils , qui est utilisé setup.pycomme fichier de configuration. Il a ensuite été remplacé par l'outil setuptools et le fichier de configuration est pyproject.toml, mais il peut également être utilisé setup.pycomme fichier de configuration.
D'autres outils d'emballage incluent : Outil de poésie. Pipenv, PDM

étapes d'empaquetage de setuptools
Insérer la description de l'image ici

4. Explication détaillée des étapes d'emballage

Cet article utilise le setuptools,fichier de configuration de l'outil d'empaquetage officiellement recommandé pyproject.toml .

1) Installez les outils de configuration

Commande d'installation

pip install --upgrade setuptools

Mettre à jour le module de construction

pip install --upgrade build

2) Utilisation de base

Créer 1 pyproject.toml, ajouter la configuration de la section du système de construction

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

Habituellement, vous devez ajouter davantage de sections de configuration de section, de métadonnées, de contenu, de dépendances, etc. Ces contenus peuvent également être inclus dans setup.cfgdes fichiers.

Tel que pyproject.toml

[project]
name = "mypackage"
version = "0.0.1"
dependencies = [
    "requests",
    'importlib-metadata; python_version<"3.8"',
]

setup.cfg

[metadata]
name = mypackage
version = 0.0.1

[options]
install_requires =
    requests
    importlib-metadata; python_version < "3.8"

3) Organiser la structure du projet

Les fichiers de projet peuvent être organisés comme suit :

mypackage
├── pyproject.toml  
|   README.rst or README.md 
|   # LICENCE (properly chosen license information, e.g. MIT, BSD-3, GPL-3, MPL-2, etc...)
└── mypackage
    ├── __init__.py
    └── ... (other Python files)

4) Compiler le projet

Dans le répertoire pyproject.toml, exécutez la commande packaging,

py -m build

Cette commande recherchera automatiquement le sous-répertoire du package et générera des artefacts sdist et wheel.

dist/
├── example_package_YOUR_USERNAME_HERE-0.0.1-py3-none-any.whl
└── example_package_YOUR_USERNAME_HERE-0.0.1.tar.gz

Parmi eux : *.tar.gz est le package de fichiers source, .whl est la distribution construite, qui est le package binaire compilé. Lors de l'installation, pip installe d'abord le package de roues.

Spécifiez le répertoire du fichier source et générez uniquement les packages sdist

python -m build --sdist source-directory

Pour les projets commerciaux, si vous n'avez pas besoin de publier le code source, vous pouvez uniquement générer le package wheel.

python3 -m build --wheel source-tree-directory

5) Téléchargez le package sur PyPi

Pour enregistrer le même compte

Adresse du compte de test : https://test.pypi.org/account/register/

Pour télécharger des fichiers, un jeton est également requis.

Afin de télécharger votre projet en toute sécurité, vous avez besoin d'un jeton API PyPiI . Il peut être créé sur https://test.pypi.org/manage/account/#api-tokens. Définissez "Scope" sur "Entie Account" . Ne fermez pas la page avant de copier et d'enregistrer le jeton - sinon, il ne fonctionne pas. Vous verrez à nouveau le jeton

L'outil de téléchargement de fichiers est Twine. La commande d'installation est la suivante

py -m pip install --upgrade twine

Exécutez dans le sous-répertoire dist pour télécharger tous les fichiers

py -m twine upload --repository testpypi dist/*

Une fois la commande ci-dessus exécutée, vous serez invité à saisir votre nom d'utilisateur et votre mot de passe. Utilisez le nom d'utilisateur __token__. Pour le mot de passe, utilisez la valeur toke, y compris pypi-le préfixe.

D:\workplace\python\guangda>python -m twine upload --repository testpypi dist/*
Uploading distributions to https://test.pypi.org/legacy/
Enter your username: peter
Enter your password:
Uploading face_push-0.0.1-py3-none-any.whl
100% ---------------------------------------- 18.6/18.6 kB • 00:00 • ?
Uploading face_push-0.0.1.tar.gz
100% ---------------------------------------- 17.5/17.5 kB • 00:00 • ?

View at:
https://test.pypi.org/project/face-push/0.0.1/

Une fois le téléchargement terminé, vérifiez

https://test.pypi.org/project/example_package

5. Téléchargez et installez des projets

Il est recommandé d'ajouter un nouvel environnement virtuel pour vérification. Vérifiez si l'installation a réussi

py -m pip install --index-url https://test.pypi.org/simple/ --no-deps example-package

py -m pip install --index-url https://test.pypi.org/simple/ --no-deps example-package-YOUR-USERNAME-HERE

Notez que TestPyPI est utilisé pour les tests.

Une fois l'installation terminée, importez le package pour le tester

from example_package import example
example.add_one(2)

Après en avoir pris connaissance, l'adresse officielle d'enregistrement du compte PyPI :

https://pypi.org

Pour déployer le serveur PyPI en privé, veuillez vous référer à la documentation officielle de pypiserver

Je suppose que tu aimes

Origine blog.csdn.net/captain5339/article/details/132657196
conseillé
Classement