PyPi добавляет тире "-" к началу и концу имени версии - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь загрузить свой пакет в PyPI, но он не будет работать.Похоже, PyPi или setuptools добавляет - до и после названия моей версии.Первоначально у меня была следующая версия: ß-2018.8, но я не думаю, что символы юникода работают.Затем я переместил его на beta-2018.8, но это тоже не сработало.Я даже попробовал базовую 2018.8, но все еще ту же ошибку?!

Может кто-нибудь помочь мне понять, что происходит?

Моя версия в пипсах:

pip 18.0 from /Users/mu/anaconda/envs/py3_clone/lib/python3.6/site-packages/pip (python 3.6)

Моя команда:

python setup.py register sdist upload

Моя ошибка:

Submitting dist/thisismypackagename--2018.08-.tar.gz to 

https://upload.pypi.org/legacy/
Upload failed (400): '-2018.08-' is an invalid value for Version. Error: Start and end with a letter or numeral containing only ASCII numeric and '.', '_' and '-'. See https://packaging.python.org/specifications/core-metadata
error: Upload failed (400): '-2018.08-' is an invalid value for Version. Error: Start and end with a letter or numeral containing only ASCII numeric and '.', '_' and '-'. See https://packaging.python.org/specifications/core-metadata

Моя __init__.py:

# =======
# Version
# =======
__version__="beta-2018.08"

My setup.py

import re
from setuptools import setup

# Version
version = None
with open("./thisismypackagename/__init__.py", "r") as f:
    for line in f.readlines():
        line = line.strip()
        if line.startswith("__version__"):
            version = line.split("=")[-1].strip()

setup(name='thisismypackagename',
      version=version,
      description='package description',
      author='Josh L. Espinoza',
      packages=["thisismypackagename"],
      zip_safe=False)

Это моя структура каталогов:

thisismypackagename
    | thisismypackagename
    | thisismypackagename | __init__.py
    | setup.py

1 Ответ

0 голосов
/ 24 августа 2018

Это потому что двойные кавычки вокруг версии:

version = None
with open("./thisismypackagename/__init__.py", "r") as f:
    for line in f.readlines():
        line = line.strip()
        if line.startswith("__version__"):
            version = line.split("=")[-1].strip()
print version
# "beta-2018.08"

А PyPI подставляет двойные кавычки в тире. Избавьтесь от двойных кавычек и решения проблем:

version = line.split("=")[-1].strip().strip('"')
...