Une fois que vous avez créé un outil utile, j'aimerais que tout le monde l'utilise. En Python, il existe un site pour enregistrer un package appelé PyPI, et en vous inscrivant ici, vous pouvez l'installer avec pip install
etc.
Dans ce document, je voudrais présenter la procédure.
Si vous cherchez sur Google en pensant que ..., vous trouverez de nombreuses méthodes anciennes qui ne sont plus recommandées. Veuillez noter que ce qui suit est un exemple typique de l'ancienne méthode.
distutils
dans setup.py
setuptools
distutils
dans .pypirc
python setup.py register
ou python setup.py sdist upload
twine
, alors utilisez ceci.Avant de publier le package sur PyPI, les préparatifs suivants sont nécessaires.
.pypirc
avec les informations d'identification du compte (facultatif)Créez un compte PyPI ci-dessous.
Si vous trouvez difficile d'entrer votre nom d'utilisateur et votre mot de passe chaque fois que vous téléchargez, vous pouvez créer un .pypirc
directement dans votre répertoire personnel et y inclure vos informations d'identification.
[pypi]
username = <username>
password = <password>
Cependant, veuillez noter que ce fichier n'est pas crypté et que son contenu sera exposé en texte brut.
Maintenant, enregistrons avec PyPI. Par souci d'explication, prenons une bibliothèque avec la structure suivante comme exemple.
YOUR-PROJECT-FOLDER
├── CHANGES.txt (OPTIONAL)
├── LICENSE.txt
├── README
├── setup.py
└── your_package (FOLDER)
├── __init__.py
├── ...
└── subpackage (FOLDER)
├── __init__.py
setup.py
Une partie importante de cette configuration est setup.py
, qui décrit le processus d'empaquetage de la bibliothèque. Le contenu sera comme suit.
setup.py
from setuptools import setup
requires = ["requests>=2.14.2"]
setup(
name='your_package',
version='0.1',
description='Awesome library',
url='https://github.com/whatever/whatever',
author='yourname',
author_email='[email protected]',
license='MIT',
keywords='sample setuptools development',
packages=[
"your_package",
"your_package.subpackage",
],
install_requires=requires,
classifiers=[
'Programming Language :: Python :: 3.6',
],
)
name
: Le nom du package. Correspond au nom réel du dossier du packageversion
: La version du package. Vous devrez changer cela lors de la mise à jour.packages
: spécifiez les packages à installer. Notez que si vous avez un sous-package, vous devez le spécifier. Ce package est tout! Dans ce cas, utilisez find_packages
.: Liste toutes les bibliothèques dont dépend le paquet. La notation est la même que le format obtenu par
pip freeze`classifiers
/ keywords
: Vous pouvez écrire des balises et des mots-clés lors de la recherche de packages. La liste des classifiers
est iciIl existe de nombreux exemples de publication de liens d'archive GitHub sur download_url
, mais ce n'est pas nécessaire sauf s'il y a une demande de GitHub pour le télécharger (cela ne devrait pas être nécessaire si vous le téléchargez en premier lieu). De nombreuses bibliothèques ne mentionnent pas non plus download_url
dans setup.py
.
Vous pouvez en fait faire beaucoup plus, mais en gros, ce n'est pas grave si les conditions ci-dessus sont remplies. Il existe un exemple de projet officiel pour plus de détails, donc je pense que vous devriez vous y référer.
Vous pouvez également jeter un œil à la célèbre bibliothèque setup.py
.
Avec ce setup.py
, vous pouvez empaqueter la bibliothèque.
Une fois que vous avez créé setup.py
, vous pouvez le conditionner avec la commande suivante.
python setup.py sdist
sdist
signifie" distribution source ", et comme son nom l'indique, c'est une distribution basée sur le code source. Par conséquent, lors de l'exécution de pip install
, le processus de construction basé sur la description de setup.py
est exécuté côté utilisateur.
Si ce processus de construction diffère selon l'OS, Python 2 et 3 ... et ainsi de suite, il est possible de distribuer un package pré-construit. Wheel est utilisé pour cela. Avec l'avènement de cette roue, il est presque impossible d'obtenir une erreur sous Windows.
Pour utiliser la roue, installez d'abord la roue.
pip install wheel
Après avoir installé wheel, vous pourrez utiliser l'option bdist_wheel
, puis la conditionner.
python setup.py bdist_wheel
Je n'entrerai pas dans les détails ici car l'utilisation de la roue est également profonde, mais si vous souhaitez fournir une installation sécurisée sur différentes plates-formes, vous devriez considérer le format de la roue.
Maintenant, téléchargeons-le. Tout d'abord, installez à l'avance la «ficelle» requise pour le téléchargement.
pip install twine
Tout ce que vous avez à faire maintenant est de télécharger le dossier packagé.
twine upload dist/*
Recommended Posts