Maison >développement back-end >Tutoriel Python >Comment créer son propre projet Python en Inutes

Comment créer son propre projet Python en Inutes

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 08:58:10997parcourir

Pourquoi un package Python ?

Python prend en charge tous les types d'exécution ; vous pouvez exécuter du code Python directement dans un shell, ou mettre votre code dans un fichier et l'exécuter plus tard.

Parfois, démarrer un nouveau projet Python est très difficile ; Écrire un scénario ? Écrire un module ? Écrire un colis ?

Le meilleur choix est le modèle micropiecies : écrivez un script, donc réécrivez-le dans un module et ainsi réécrivez-le dans un package.

Ce modèle vous permet de ne pas réinventer la roue tous les jours et de réutiliser le code dans le futur.

Structure du paquet Python

Le package Python a cette structure :

pkg
├── __init__.py
├── module1.py
└── subpkg
    ├── __init__.py
    ├── __main__.py
    └── module2.py

Le dossier pkg est un package, car contient le module __init__.py. Le dossier subpkg est également un package ; est un sous-paquet de pkg.
module1.py et module2.py sont des modules de leurs packages.
Le module __main__.py permet l'exécution du package.

Seulement ici ? D'autres choses ?

Si vous devenez développeur Python, vous utilisez habituellement d'autres outils.

Dans l'ordre, suivez ces étapes pour chaque morceau de code que vous écrivez :

  1. Écrivez du code Python dans votre package
  2. Suivez vos modifications
  3. Testez tout le code que vous écrivez
  4. Mettez votre code dans un environnement pour le tester
  5. Poussez votre code dans un référentiel distant
  6. Construisez votre package pour la distribution
  7. Téléchargez votre package dans PyPi

Pipelines

Chaque modification de votre code peut introduire d'éventuels bugs. Pour éliminer cela, chaque fois que nous avons besoin de tester notre propre package dans le bon environnement.

Pour ce faire, certains outils sont nécessaires sur Python lui-même, comme git, docker et make.

Documentation, licence et autres fichiers courants

Il ne suffit pas de simplement créer un package Python et de le rendre immédiatement accessible à tous. Il faut également réfléchir à la manière de le documenter, de l'expliquer brièvement à d'autres personnes, de l'autoriser et d'expliquer comment l'intégrer au projet.

Cela nécessite de développer des fichiers comme README, LICENSE, CODE_OF_CONDUCT et CONTRIBUTING.
Peut-être en ajoutant un CHANGELOG pour conserver et permettre aux autres de suivre les modifications apportées à chaque version.

Créez un projet en quelques minutes

Pour réaliser toutes les parties d'un projet Python, cela prend quelques heures ou quelques jours.
Mais existe un outil à cet effet : psp.

Après avoir suivi les instructions d'installation :

[test@ubuntu ~] sudo apt install -y python3 python3-pip git curl
[test@ubuntu ~] curl -L https://github.com/MatteoGuadrini/psp/releases/download/v0.1.0/psp.deb -o psp.deb
[test@ubuntu ~] sudo dpkg -i psp.deb

exécutez-le :

[test@ubuntu ~] psp
Welcome to PSP (Python Scaffolding Projects): 0.1.0
> Name of Python project: app
> Do you want to create a virtual environment? Yes
> Do you want to start git repository? Yes
> Select git remote provider: Gitlab
> Username of Gitlab: test_user
> Do you want unit test files? Yes
> Install dependencies: flask
> Select documention generator: MKDocs
> Do you want to configure tox? Yes
> Select remote CI provider: CircleCI
> Do you want create common files? Yes
> Select license: Gnu Public License
> Do you want to install dependencies to publish on pypi? Yes
> Do you want to create a Dockerfile and Containerfile? Yes
Python project `app` created at app

Maintenant, vérifiez le projet Python qui a été créé :

[test@ubuntu ~] ls -lah app
total 88K
drwxrwxr-x  9 test   test    440 Dec 20 14:48 .
drwxrwxrwt 29 root   root    680 Dec 20 14:49 ..
drwxrwxr-x  2 test   test     60 Dec 20 14:47 .circleci
drwxrwxr-x  7 test   test    200 Dec 20 14:47 .git
-rw-rw-r--  1 test   test    381 Dec 20 14:47 .gitignore
drwxrwxr-x  4 test   test     80 Dec 20 14:47 .gitlab
-rw-rw-r--  1 test   test    127 Dec 20 14:48 CHANGES.md
-rw-rw-r--  1 test   test   5.4K Dec 20 14:48 CODE_OF_CONDUCT.md
-rw-rw-r--  1 test   test   1.1K Dec 20 14:48 CONTRIBUTING.md
-rw-rw-r--  1 test   test    190 Dec 20 14:48 Containerfile
-rw-rw-r--  1 test   test    190 Dec 20 14:48 Dockerfile
-rw-rw-r--  1 test   test    35K Dec 20 14:48 LICENSE.md
-rw-rw-r--  1 test   test    697 Dec 20 14:48 Makefile
-rw-rw-r--  1 test   test    177 Dec 20 14:48 README.md
drwxrwxr-x  2 test   test     60 Dec 20 14:47 docs
-rw-rw-r--  1 test   test     19 Dec 20 14:47 mkdocs.yml
-rw-rw-r--  1 test   test    819 Dec 20 14:48 pyproject.toml
-rw-rw-r--  1 test   test     66 Dec 20 14:47 requirements.txt
drwxrwxr-x  2 test   test     80 Dec 20 14:47 tests
-rw-rw-r--  1 test   test    213 Dec 20 14:47 tox.ini
drwxrwxr-x  2 test   test     80 Dec 20 14:46 app
drwxrwxr-x  5 test   test    140 Dec 20 14:46 venv

Commencez à développer le package

Commencez à développer le package que la commande psp a créé pour notre projet.

[test@ubuntu ~] cd app/ && ls -lh app/
total 8.0K
-rw-rw-r-- 1 test test 162 Dec 20 14:46 __init__.py
-rw-rw-r-- 1 test test 204 Dec 20 14:46 __main__.py
[test@ubuntu ~] vim app/core.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Wow, this is my app!</p>"

Maintenant, importez notre fonction hello_world dans le fichier __main__.py :

pkg
├── __init__.py
├── module1.py
└── subpkg
    ├── __init__.py
    ├── __main__.py
    └── module2.py
[test@ubuntu ~] sudo apt install -y python3 python3-pip git curl
[test@ubuntu ~] curl -L https://github.com/MatteoGuadrini/psp/releases/download/v0.1.0/psp.deb -o psp.deb
[test@ubuntu ~] sudo dpkg -i psp.deb

Exécutez notre package

Vous avez écrit un package simple, mais organisé et puissant, prêt à être produit et distribué.

Testez notre forfait.

[test@ubuntu ~] psp
Welcome to PSP (Python Scaffolding Projects): 0.1.0
> Name of Python project: app
> Do you want to create a virtual environment? Yes
> Do you want to start git repository? Yes
> Select git remote provider: Gitlab
> Username of Gitlab: test_user
> Do you want unit test files? Yes
> Install dependencies: flask
> Select documention generator: MKDocs
> Do you want to configure tox? Yes
> Select remote CI provider: CircleCI
> Do you want create common files? Yes
> Select license: Gnu Public License
> Do you want to install dependencies to publish on pypi? Yes
> Do you want to create a Dockerfile and Containerfile? Yes
Python project `app` created at app

Et le résultat est :

How to create own Python project in inutes

Exécuter des tests unitaires sur le package

Teste désormais également le code Python sur le package, via le dossier tests :

[test@ubuntu ~] ls -lah app
total 88K
drwxrwxr-x  9 test   test    440 Dec 20 14:48 .
drwxrwxrwt 29 root   root    680 Dec 20 14:49 ..
drwxrwxr-x  2 test   test     60 Dec 20 14:47 .circleci
drwxrwxr-x  7 test   test    200 Dec 20 14:47 .git
-rw-rw-r--  1 test   test    381 Dec 20 14:47 .gitignore
drwxrwxr-x  4 test   test     80 Dec 20 14:47 .gitlab
-rw-rw-r--  1 test   test    127 Dec 20 14:48 CHANGES.md
-rw-rw-r--  1 test   test   5.4K Dec 20 14:48 CODE_OF_CONDUCT.md
-rw-rw-r--  1 test   test   1.1K Dec 20 14:48 CONTRIBUTING.md
-rw-rw-r--  1 test   test    190 Dec 20 14:48 Containerfile
-rw-rw-r--  1 test   test    190 Dec 20 14:48 Dockerfile
-rw-rw-r--  1 test   test    35K Dec 20 14:48 LICENSE.md
-rw-rw-r--  1 test   test    697 Dec 20 14:48 Makefile
-rw-rw-r--  1 test   test    177 Dec 20 14:48 README.md
drwxrwxr-x  2 test   test     60 Dec 20 14:47 docs
-rw-rw-r--  1 test   test     19 Dec 20 14:47 mkdocs.yml
-rw-rw-r--  1 test   test    819 Dec 20 14:48 pyproject.toml
-rw-rw-r--  1 test   test     66 Dec 20 14:47 requirements.txt
drwxrwxr-x  2 test   test     80 Dec 20 14:47 tests
-rw-rw-r--  1 test   test    213 Dec 20 14:47 tox.ini
drwxrwxr-x  2 test   test     80 Dec 20 14:46 app
drwxrwxr-x  5 test   test    140 Dec 20 14:46 venv

Sauvons nos œuvres

Vous pouvez désormais enregistrer le développement de votre application Web.

[test@ubuntu ~] cd app/ && ls -lh app/
total 8.0K
-rw-rw-r-- 1 test test 162 Dec 20 14:46 __init__.py
-rw-rw-r-- 1 test test 204 Dec 20 14:46 __main__.py
[test@ubuntu ~] vim app/core.py

Environnement de test

Simulez avec docker votre environnement de production :

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Wow, this is my app!</p>"

Et le résultat est le même :
How to create own Python project in inutes

Construisez le pipeline avec make

Maintenant, après le prochain développement, vous pouvez utiliser le pipeline avec Makefile :

[test@ubuntu app] vim app/__main__.py

Publier le package sur PyPi

Maintenant, si vous le souhaitez, vous êtes prêt à publier votre package Python sur PyPi :

#! /usr/bin/env python3
# -*- encoding: utf-8 -*-
# vim: se ts=4 et syn=python:
# Generated by psp (https://github.com/MatteoGuadrini/psp)

from .__init__ import __version__
print(f'app {__version__}')

from .core import app
app.run(debug=True)

Conclusion

En moins de cinq minutes, vous avez créé un projet Python où le développement du package lui-même est la seule chose dont vous devez vous soucier.

Outils utilisés sur cet article :
psp : référentiel -- docs
git : référentiel -- docs
docker : référentiel -- docs
make: dépôt -- docs
python : référentiel -- docs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn