L'autre jour, j'aimerais vous présenter ce avec quoi j'ai eu du mal lorsque j'ai enregistré mon propre package pour la première fois avec PyPI. La première chose à laquelle je suis accro, c'est que vous devez utiliser de la ficelle et que le nom du paquet n'est pas approprié.
Au départ, j'ai recherché et recherché des moyens d'enregistrer des packages avec PyPI, et de nombreux blogs et articles ont montré les étapes suivantes.
no | work | URL de référence/command |
---|---|---|
1 | Création de code source | |
2 | Organiser la structure des dossiers | Python:Inclure les fichiers de données dans votre propre package |
3 | setup.Créer py | Procédure d'inscription PyPI pour ceux qui veulent faire leurs débuts PyPI |
4 | Construction de distribution | >>python setup.py sdist |
5 | Tester l'installation | >>python setup.py install |
6 | Créer un compte dans PyPI pour le test | Destination d'enregistrement |
7 | .Créer pypirc | Enregistrez le package avec PyPI |
8 | Enregistrez le nom du package | >>python setup.py register -r pypitest |
9 | Télécharger le package | >>python setup.py sdist upload -r pypitest |
10 | Créer un compte sur PyPI pour la production | Destination d'enregistrement |
11 | Enregistrez le nom du package | >>twine register dist/* |
12 | Télécharger le package | >>twine upload dist/* |
13 | Tester l'installation | >>nom du package d'installation pip |
Twine, PyPi pour test, lié à ".pypirc" est complété.
-Il est nécessaire de créer des comptes séparés pour PyPi pour le test et PyPi pour la production.
sample
file:.pypirc
[distutils]
index-servers =
pypi
pypitest
[pypi]
repository: https://pypi.python.org/pypi
username: worst
password: Salary_burglar
[pypitest]
repository: https://testpypi.python.org/pypi
username: learner
password: Being_late
#Si la définition du serveur est pypitest, spécifiez comme suit
>>python setup.py register -r pypitest
>>python setup.py sdist upload -r pypitest
Tout s'est bien déroulé jusqu'à ce que je m'inscrive chez PyPI pour un test. Si vous avez une longue histoire de Python, cela prendra moins de 5 minutes. Lorsque j'ai enregistré le nom du package sur le serveur de production de PyPI, j'ai eu l'erreur suivante et je me suis arrêté.
Server response (410): This API is no longer supported, instead simply upload the file.
Il semble que vous puissiez utiliser la ficelle au lieu du registre python setup.py, ou enregistrer PKG-INFO directement avec l'url suivante.
https://pypi.python.org/pypi?%3Aaction=submit_form
sample
#Ancienne façon
python setup.py register
python setup.py sdist upload
#Nouvelle façon
pip install twine #Installer si nécessaire
twine register dist/*
twine upload dist/*
C'est vers 2014 que cette méthode est devenue recommandée (elle est désormais obligatoire car elle n'est plus prise en charge)? Ainsi, les articles jusqu'en 2014 sont introduits à l'ancienne.
Et tandis que PyPi for test peut être enregistré avec l'ancienne méthode, PyPi for production ne peut être enregistré qu'avec la nouvelle méthode, qui est l'endroit le plus facile pour devenir accro.
C'est simple. Le nom du package que vous tentiez d'enregistrer était déjà utilisé par quelqu'un d'autre. Dans la réponse, j'ai immédiatement remarqué qu'il ne pouvait pas être précisé s'il était déjà utilisé, mais ... c'est un festival plus tardif.
Lorsque j'essaye d'enregistrer PKG-INFO sur le WEB avec un nom utilisé, la réponse suivante est renvoyée.
Forbidden You are not allowed to store 'picker' package information
Lorsque j'utilise de la ficelle, j'obtiens le message suivant:
HTTPError: 403 Client Error: You are not allowed to edit 'picker' package information for url: https://pypi.python.org/pypi
Pour vérifier le bâton, recherchez le site PyPi pour le vérifier.
https://pypi.python.org/pypi
Recherchez "pip recherchez le nom que vous souhaitez utiliser".
Si vous en avez, veuillez utiliser "pip search *> list.txt" pour obtenir la liste complète et y jeter un coup d'œil.
Recommended Posts