ist sagen, dass ich ein Paket mit einer Konsole Skript wieWas ist der Zweck von Setuptool Anforderungen des Formulars „-Paket === Version“
from setuptools import setup
setup(
name='eg_package',
version='0.0.1',
description='Trivial test package',
packages=[
'eg_package',
],
entry_points={
'console_scripts': [
'foo = eg_package.main:main',
]
},
)
Wenn ich und explizitem Build-Tag gesetzt egg_info -b mytag
das resultierende Skript hat __requires__ = 'eg-package===0.0.1mytag'
, dh mit 3 "=" Zeichen. Dies tritt auf, wenn das Tag nicht konventionell ist wie b1
für eine Betaversion.
Zuerst dachte ich, dies sei ein Fehler, aber die Dokumentation von setuptools schlägt vor, dass es sich um eine gültige Anforderungskennung handelt. Es funktioniert jedoch nicht mit älteren Versionen von setuptools, die Probleme mit unseren Systemen verursachen.
Meine Frage ist, was bedeutet "==="
und warum verwendet setuptools
es verwenden?
Sie eine offizielle Beschreibung von '' === in PEP440 https finden: // www. python.org/dev/peps/pep-0440/#arbitrary-equality – cel
Danke, das ist sehr vernünftig.Ich war an die permissiveren Regeln früherer Versionen von setuptools gewöhnt, aber ich bin froh, in strengere Versionszeichenfolgen gezwungen zu werden. Es ist schade, dass dies nicht in der [docs] (https://pythonhosted.org/setuptools/search.html) oder dem [packaging guide] (https://packaging.python.org/en/latest/) erwähnt wird. . –
Mein besonderes Problem war, dass ein Build-System, das die neuesten setuptools ausführt, Debian-Pakete erstellt, die in Vanilla-Ubuntu-Systemen installiert werden, die nicht über die neuesten setuptools verfügen => PEP440-Anforderungsbeschreibungen werden nicht unterstützt. –