[PYTHON] Enregistrez le package avec PyPI

Depuis que j'ai enregistré le package avec PyPI pour la première fois, je vais résumer ce que j'ai fait.

activer setup.py

La structure des répertoires est aussi simple que possible.

.
├── LICENSE.txt
├── README.md
├── nbupload
│   ├── FileUploaderView.js
│   ├── FileUploaderWidget.py
│   └── __init__.py
└── setup.py

Puisqu'il gère git, incluez également .gitignore pour Python.

Écrivez un setup.py minimal. packages = ['nbupload'] est un moyen d'écrire un nom de répertoire sous forme de package. Pour plus de détails, reportez-vous à la Documentation.

from setuptools import setup

setup(
    name = "nbupload",
    version = "0.0.1",
    packages=['nbupload'],
)

avec ça,

python setup.py develop

Si vous tapez, il sera installé pour le développement et vous pourrez l'importer normalement. En fait, il y avait un fichier appelé nbupload.egg-link dans le répertoire site-packages de python, et le chemin d'accès au répertoire du package était écrit dans ce fichier.

Désinstaller

python setup.py develop -u

C'est bon.

Inscrivez-vous avec pypi

Puisque setup.py est solitaire ci-dessus, ajouter divers.

Si vous n'avez pas de compte pypi, obtenez-en un. Il existe également un testpypi pour le test d'enregistrement des packages, alors enregistrez-y également un compte. Veuillez noter que le mot de passe à enregistrer doit être placé dans le répertoire personnel en texte brut (bien qu'il puisse être supprimé immédiatement).

Je pense que le mot de passe doit contenir 16 caractères ou plus et qu'il n'y a pas de majuscules ou de minuscules. L'OpenID de Google ne peut pas être utilisé car Google ne prend plus en charge les nouvelles inscriptions.

Créez .pypirc dans votre répertoire personnel. (Si vous vous enregistrez uniquement dans pypi, vous n'avez pas à mettre ceci (?), Mais si vous avez testpypi, vous devez mettre ceci)

J'ai fait référence à ici.

[distutils]
index-servers =
    pypi
    pypitest

[pypi]
repository: https://pypi.python.org/pypi
username: {{your_username}}
password: {{your_password}}

[pypitest]
repository: https://testpypi.python.org/pypi
username: {{your_username}}
password: {{your_password}}

Inscrivez-vous avec testpypi.

python setup.py register -r https://testpypi.python.org/pypi

Cela créera un élément dans pypi, qui apparaîtra également dans pip search --index https://testpypi.python.org/pypi nb upload.

Cependant, dans l'état actuel des choses, il n'y a pas encore de package réel, je dois donc télécharger gzip. Vous pouvez également écrire download_url dans setup.py et spécifier le gzip de la balise github, mais par défaut pip install ignore les URL autres que pypi (si vous ajoutez --allow-external, il passera). Il est préférable de télécharger sur pypi lui-même. La commande suivante fait cela.

python setup.py sdist upload -r https://testpypi.python.org/pypi

Vous pouvez maintenant l'installer avec pip install --index-url https://testpypi.python.org/simple/ nbupload.

Si vous pouvez le faire jusqu'à présent, tout ce que vous avez à faire est de vous inscrire au pypi de production.

python setup.py register
python setup.py sdist upload

Cela se termine par.

Bonus: inclure des fichiers non-python dans le package

Cette fois, JS doit être inclus dans le package et distribué, j'ai donc dû écrire ceci dans setup.py.

    package_data = {
        'nbupload': ['FileUploaderView.js'],
    },

Si vous ne le faites pas, par défaut l'empaquetage avec python setup.py sdist upload n'inclura aucun fichier non-python.

Recommended Posts

Enregistrez le package avec PyPI
Comment enregistrer un package dans PyPI (à partir de septembre 2017)
Comment s'inscrire auprès de pypi
Je veux trouver un package populaire sur PyPi
Construire un serveur de cache Pypi sur QNAP
[Python] Enregistrez votre propre bibliothèque dans PyPI
Générer semi-automatiquement une description du package à enregistrer dans PyPI
Je l'aime dès qu'une réponse arrive sur Twitter
Un mémo créé dans un package et enregistré dans PyPI
Les débutants en Python étaient accros à l'enregistrement de leurs propres packages dans PyPI, version de février 2017
Visualisez les relations internes avec les packages de Go sur une base engagement par engagement
Comment utiliser Fujifilm X-T3 comme webcam sur Ubuntu 20.04
Un mémorandum pour enregistrer la bibliothèque écrit en Hy dans PyPI
Obtenez la version du package pour vous inscrire à PyPI à partir de Git
[Java] Développement du plug-in Spigot - Enregistrez la commande en tant que commande vanilla
Créer un référentiel pypi local
Un commentaire sur l'algorithme de Boruta
Utiliser Remotte en tant qu'utilisateur
Créer une salle de classe sur Jupyterhub
Exécutez une application Java qui réside sur AWS EC2 en tant que démon
Package PyPI pour une utilisation super facile de Cotoha sur Google colab
J'ai essayé d'enregistrer une station sur la plateforme IoT "Rimotte"
Comment déployer une application Web sur Alibaba Cloud en tant que pigiste