[PYTHON] J'étais accro à ne pas pouvoir utiliser Markdown pour la description longue de pypi

Conclusion

--Lorsque j'essaye d'enregistrer ma propre bibliothèque (mong) dans pypi, la description du paquet (README.md) ) Était en colère contre une erreur de format --long_description_content_type est reconnu comme reStructuredText même s'il est spécifié --Dans setup.py, utilisez setuptools.setup au lieu de distutils.core.setup

Quand j'ai remarqué, la solution était instantanée. Je n'ai pas beaucoup de chances de créer setup.py à partir de zéro, donc je l'enregistrerai pour référence future. (Je suis une autre personne après 3 jours)

Contexte

J'ai toujours eu peur que la description de pypi dans mong soit rompue. Il n'était pas reconnu comme Markdown, et même si long_description_content_type =" text / markdown " était spécifié dans l'argument de setup (), je pensais que c'était un type. Depuis qu'un nouveau nom a été ajouté par le chef de famille, nous avons décidé de mettre à niveau et nous nous sommes attaqués à ce problème qui avait été reporté.

image.png

Enquête

Utilisons twine check

Au début, je testais avec test.pypi, mais en cours de route, j'ai réalisé que je pouvais utiliser twine check pour le vérifier à portée de main. Cela accélère le cycle de vérification.

Le résultat de la vérification dans la ficelle est le suivant, et il sort également si long_description_content_type n'est pas spécifié.

% twine check dist/mong-0.0.1.tar.gz
Checking dist/mong-0.0.1.tar.gz: FAILED
  `long_description` has syntax errors in markup and would not be rendered on PyPI.
    line 13: Warning: Inline literal start-string without end-string.
  warning: `long_description_content_type` missing.  defaulting to `text/x-rst`.

Élément d'enquête

J'ai vérifié les éléments suivants un par un. Après tout, cela n'avait pas d'importance du tout, mais j'ai eu une meilleure compréhension de PyPI et des packages. La description semble avoir été générée en regardant «mong-00.1 / PKG-INFO».

--typo: Exemple de document officiel Python n'a pas pu être copié, donc cela semble différent.

Causes et contre-mesures

Donc, quand j'ai regardé le début du code, je n'ai pas utilisé setuptools en premier lieu. C'est complètement inattendu (même si c'est mon code) que j'utilise l'ancien distutils.

https://github.com/toshihikoyanase/mong/blob/v0.0.1/setup.py#L1

from distutils.core import setup

Vous devriez le remplacer par setuptools.

https://github.com/toshihikoyanase/mong/blob/v0.0.2/setup.py#L1

from setuptools import setup

Vous pouvez être assuré que la description sera rendue dans Markdown. Nous avons également publié la v0.0.2.

image.png

Recommended Posts

J'étais accro à ne pas pouvoir utiliser Markdown pour la description longue de pypi
J'étais accro à Flask sur dotCloud
J'étais accro à ne pas pouvoir obtenir une adresse e-mail de Google avec l'authentification django-allauth
J'étais accro au multitraitement + psycopg2
Le record auquel j'étais accro en mettant MeCab dans Heroku
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
J'étais accro à pip installer mysqlclient
Je veux utiliser Linux sur mac
Ce que j'étais accro à Python autorun
Deux choses dont j'étais accro à la construction de Django + Apache + Nginx sous Windows
J'étais accro à l'exécution de tensorflow sur GPU avec le pilote NVIDIA 440 + CUDA 10.2
Une histoire à laquelle j'étais accro à essayer d'installer LightFM sur Amazon Linux
Utilisez Python de Java avec Jython. J'étais aussi accro.
Connectez-vous lorsque je craignais de ne pas pouvoir me connecter au Wi-Fi sous Linux
[Introduction à json] Non, j'en étais accro. .. .. ♬
Python: j'ai pu récurer en lambda
J'ai essayé d'utiliser Resultoon sur Mac + AVT-C875, mais j'étais frustré en chemin.
Notez que j'étais accro au script npm ne passant pas dans l'environnement de vérification
Mémo de code en difficulté car il n'était pas répertorié sur le site discord.py
J'étais accro au grattage avec Selenium (+ Python) en 2020
Une histoire à laquelle j'étais accro chez np.where
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Python: peut être répété en lambda
J'étais accro à essayer logging.getLogger avec Flask 1.1.x
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
Je souhaite utiliser l'environnement de bureau d'Ubuntu sur Android pour le moment (version Termux)
Mémo (mars 2020) auquel j'étais accro lors de l'installation d'Arch Linux sur MacBook Air 11'Early 2015
Je souhaite utiliser l'environnement de bureau d'Ubuntu sur Android pour le moment (version UserLAnd)
[IOS] Animation GIF avec Pythonista3. J'en étais accro.
Ce à quoi j'étais accro lorsque l'utilisateur de traitement est passé à Python
[Réparer] J'étais accro au jugement alphanumérique des chaînes Python
J'étais un peu accro à l'installation de Python3.3 + mod_wsgi3.4 sur Sakura VPS (CentOS), donc une note de révision
On m'a dit que je ne pouvais pas trouver XML_SetHashSalt lorsque j'ai essayé d'utiliser pip avec python.
L'histoire de ne pas pouvoir exécuter pygame avec pycharm
Je souhaite utiliser la traduction de raccourcis comme l'application DeepL même sous Linux
Ce à quoi j'étais accro en présentant ALE à Vim pour Python
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
Notez que j'étais accro à l'interpolation des valeurs manquantes de sklearn (Imputer)
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
Lorsque j'essaye d'utiliser pip, le module SSL n'est pas disponible.
Python> Compréhension> Cellules> On m'a appris à utiliser la notation à double inclusion / itertools
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
Je veux vraiment utiliser GitHub Flavored Markdown (GFM) avec Pelican!
Non local (désolé de ne pas pouvoir expliquer) auquel les débutants en Python (élèves du premier cycle du secondaire) étaient dépendants
Je souhaite utiliser l'environnement de bureau d'Ubuntu même sur Android pour le moment (entrée version japonaise de Termux dans l'environnement de bureau)
Pour le moment en utilisant FastAPI, je veux montrer comment utiliser l'API comme ça dans swagger