Как получить лучшее сообщение об ошибке при попытке установить pip с несовместимой версией Python? - PullRequest
0 голосов
/ 10 октября 2019

Мой пакет поддерживает только Python 3, принудительно установлен из setuptools с помощью python_requires='>3.6'

Когда я пытаюсь установить pip из Python 2, я получаю смутную ошибку

  ERROR: Could not find a version that satisfies the requirement mypackage (from versions: none)
ERROR: No matching distribution found for mypackage

Этота же ошибка, как если бы я использовал typo'd имя пакета, что не очень полезно.

Когда я запускаю установку с -vvv, я вижу, что pip игнорирует ожидаемые пакеты py3.

Link requires a different Python (2.7.16 not in: u'>=3.6'):
https://mypypiindex (from https://mypypiindex) (requires-python:>=3.6)

Пакет, который я разрабатываю, предназначен для большой аудитории разработчиков в моей компании, и я хочу разъяснить им ограничение версии интерпретатора.

Есть ли способ получить лучшее сообщение об ошибке?

Я вижу обсуждения в GitHub, но, похоже, нет обходного пути.

Вот они:

1 Ответ

0 голосов
/ 10 октября 2019

Обходной путь, с которым я пошел, - удалить python_requires и затем вручную проверить его сверху

import sys

# we used to use python_requires but we want a better
# error message for people trying to use python 2
MIN_PY_VERSION = (3, 6)
assert sys.version_info >= MIN_PY_VERSION,\
    "ERROR: python version must be greater than {}".format(MIN_PY_VERSION)

Когда разработчик пытается установить его с несовместимой версией Python, онбудет отображаться с

$ pip install .
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Looking in indexes: https://artifactory.local.mycompany.net/artifactory/api/pypi/pypi/simple
Processing XXX
    ERROR: Command errored out with exit status 1:
     command: /XXX/bin/python2.7 -c 'XXX'
         cwd: /private/var/folders/t0/bpn6p6nn3jv_fmz9h_wdlld40003f0/T/pip-req-build-1YAoYX/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/XXX/setup.py", line 11, in <module>
        "ERROR: python version must be greater than {}".format(MIN_PY_VERSION)
    AssertionError: ERROR: python version must be greater than (3, 6)
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

ПРИМЕЧАНИЕ. Это не работает, если вы устанавливаете с колеса, так как они не запускают setup.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...