Créer un module Python

Il était étonnamment gênant de le rendre aussi simple que le système de paquets de nœuds.

Créer un projet

Créez un répertoire approprié.

mkdir mymodule && cd $_

Utilisez virtualenv ou direnv pour isoler le python système du python dans le répertoire.

Pour virtualenv virtualenv env Pour direnv, faites direnv edit . puis layout python dans l'éditeur que vous ouvrez. Si vous faites pip freeze et que seul wsgiref apparaît, la construction de l'environnement est terminée. Puisqu'il est isolé du système pip, vous pouvez installer librement les modules requis.

Structure du répertoire

.
├── .gitignore
├── LICENSE
├── MANIFEST.in
├── README.md
├── mymodule.py
├── setup.py
└── tests
    └── myplugin_test.py

.gitignore

Basé sur .gitignore de Python, ajoutez le répertoire env si vous utilisez virtualenv et ajoutez .direnv si vous utilisez direnv. gitignore/Python.gitignore

README.md

En fait, il est préférable d'utiliser restructuredText qui est formaté et affiché avec PyPI au lieu de markdown.

setup.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import with_statement
from setuptools import setup

with open("README.md") as f:
    long_description = f.read()

setup(
    name="mymodule",
    version="0.1.0",
    description="hogehoge.",
    long_description=long_description,
    author="yourid",
    author_email="youremail",
    url="yoururl",
    py_modules=["mymodule"],
    include_package_data=True,
    install_requires=["Flask"],
    tests_require=["nose"],
    license="MIT",
    keywords="",
    zip_safe=False,
    classifiers=[]
)

py_modules spécifie le nom de fichier du module à publier. install_requires et tests_require écrivent les modules dépendants. Selon l'article, pip freeze peut être spécifié ici, mais il est préférable d'écrire sans spécifier manuellement la version car elle sera spécifiée jusqu'à la version et cela ressemblera à un enfer de dépendances. classifiers est sélectionné depuis ici.

MANIFEST.in

Par défaut, seuls les fichiers Python sont inclus dans le module, il est donc nécessaire d'inclure des fichiers texte spéciaux. Cette fois, écrivez ʻinclude README.md` pour inclure README.md. Si vous préparez requirements.txt, vous devez également le décrire ici.

mymodule.py

Corps du module. Écrivez de manière appropriée.

tests/

Test de module. Écrivez de manière appropriée. Écrire correctement.

tester

Utilisez le nez. Entrez avec pip install nose. L'exécution est nosetests

Inscrivez-vous avec PyPI et testez PyPI

Inscrivez-vous auprès de Test PyPI et PyPI. Créez un fichier .pypirc dans votre répertoire personnel et écrivez les informations d'enregistrement.

[distutils]
index-servers =
    pypi
    pypitest

[pypi]
repository: https://pypi.python.org/pypi
username: {{Nom d'utilisateur}}
password: {{mot de passe}}

[pypitest]
repository: https://testpypi.python.org/pypi
username: {{Nom d'utilisateur}}
password: {{mot de passe}}

Une fois le module terminé et le test terminé, python setup.py register -r https: // testpypi.python.org / pypi pour enregistrer le paquet puis python setup.py sdist upload -r https: // Inscrivez-vous avec Test PyPI sur testpypi.python.org / pypi. Puisqu'il s'agit d'un site de test, vous pouvez vous inscrire et tester de plus en plus. S'il est enregistré sans problème, vous pouvez l'installer avec pip install --index-url https: // testpypi.python.org / simple / mymodule. Après avoir testé s'il peut être installé correctement avec Python sur le système, importez-le et utilisez-le, etc., enregistrez-le dans le PyPI de production.

Enregistrez le module en production PyPI avec python setup.py register Vous pouvez télécharger des modules sur PyPI de production avec python setup.py sdist upload.

fin

j'ai fabriqué ça airtoxin/plugin-loader

Recommended Posts

Créer un module Python
Créer un environnement Python
Créer un plugin Wox (Python)
Créer une fonction en Python
Créer un dictionnaire en Python
Créer un tableau numpy python
Créer un répertoire avec python
Créer une interface graphique python à l'aide de tkinter
Créer un conteneur DI avec Python
Créer un environnement Python sur Mac (2017/4)
Créez un environnement virtuel avec Python!
Créer un fichier binaire en Python
Utilisez Blender comme module Python
Créer un environnement python dans centos
Créer un framework de décorateur à usage général pour Python
5 façons de créer un chatbot Python
Créer une chaîne aléatoire en Python
Importer le module Python
Module de collections Python
Créer un nouveau projet de calcul numérique Python
Créez une image factice avec Python + PIL.
Créez un environnement python sur votre Mac
Créer une application GUI simple en Python
Créer un diagramme de relations des modules Python
Créons un environnement virtuel pour Python
[Python] Créez un environnement virtuel avec Anaconda
Créons un groupe gratuit avec Python
Créer un module Python [CarSensor API support module csapi]
Créer un graphique à l'aide du module Sympy
[Python] Créer un environnement Batch à l'aide d'AWS-CDK
[Python] [LINE Bot] Créer un robot LINE de retour de perroquet
Créer un compteur de fréquence de mots avec Python 3.4
Créer un fichier deb à partir d'un package python
[Python] Créez un LineBot qui s'exécute régulièrement
[GPS] Créer un fichier kml avec Python
Créez un programme de jugement de compatibilité avec le module aléatoire de python.
Erreur lors de l'installation d'un module avec Python pip
Créer un cadre avec un arrière-plan transparent avec tkinter [Python]
[Python] Compréhension de liste Différentes façons de créer une liste
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Algorithme A * (édition Python)
Créez un environnement de test Vim + Python en 1 minute
Créer un planning Django
Créer un fichier GIF en utilisant Pillow en Python
[Python] Prenez une capture d'écran
Créer un tableau C à partir d'une feuille Python> Excel
[python] Créer une liste de différents types de caractères
[Python] Créer plusieurs répertoires
expression lambda de python ...
Créer Spatia Lite en Python
Créer un LINE BOT avec Minette pour Python
Je veux créer une fenêtre avec Python
Créer un graphique de distribution normale standard en Python
importation du module d'origine python
Comment créer un fichier JSON en Python
Créer un environnement virtuel avec conda avec Python
Créer une nouvelle tâche Todoist à partir d'un script Python
Créer une page qui se charge indéfiniment avec python
[Note] Créez une classe de fuseau horaire sur une ligne avec python