Как исправить проблему "PyPI-тест не найден в .pypic" при отправке пакета в PyPI?

Я последовал за гидом Как отправить пакет в PyPI для отправки одного пакета. Он добавил ошибку ниже:

    Traceback (most recent call last):
      File "setup.py", line 27, in 
        'Programming Language :: Python',
      File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup
        dist.run_commands()
      File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands
        self.run_command(cmd)
      File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command
        cmd_obj.run()
      File "/usr/lib/python2.6/site-packages/setuptools/command/register.py", line 9, in run
        _register.run(self)
      File "/usr/lib64/python2.6/distutils/command/register.py", line 33, in run
        self._set_config()
      File "/usr/lib64/python2.6/distutils/command/register.py", line 84, in _set_config
        raise ValueError('%s not found in .pypirc' % self.repository)
    ValueError: PyPI-test not found in .pypirc

Контекст My.pypirc:

    [distutils] # this tells distutils what package indexes you can push to
    index-servers =
        PyPI # the live PyPI
        PyPI-test # test PyPI

    [PyPI] # authentication details for live PyPI
    repository: https://PyPI.python.org/PyPI
    username: {{username}}
    password: {{password}}

    [PyPI-test] # authentication details for test PyPI
    repository: https://testPyPI.python.org/PyPI
    username: {{username}}

Моя ОС env

CentOS release 6.2 (Final)
, а python env -
Python 2.6.6
.

Какую причину и как ее исправить?

Ответы

Ответ 1

Некоторые подводные камни, чтобы избежать этой работы:

Файл .pypirc ожидается в каталоге HOME. Это верно для Windows и Unix.

Если это не работает, это потому, что файл .pypirc не найден по пути, указанному переменной HOME.

В Windows, чтобы узнать, каков ваш путь:

  • С PowerShell (если вы используете, например, pew для управления virtualenv), echo $HOME.

  • С консолью Windows по умолчанию echo %HOMEPATH% (да, поговорим о "переносимости")

Затем поместите файл .pypirc прямо по этому пути.

Что касается файла, не забудьте часть distutil, иначе он не будет работать. Ваш файл должен быть точно так:

[distutils]
index-servers =
    pypi
    pypitest

[pypitest]
repository = https://testpypi.python.org/pypi
username = <your user name goes here>
password = <your password goes here>

[pypi]
repository = https://pypi.python.org/pypi
username = <your user name goes here>
password = <your password goes here>

Моя интуиция подсказывает мне не настраивать имя хранилища pypi, не уверен, что оно работает иначе.

Затем, когда вы запустите команду, просто -r флаг -r (хранилище) с pypitest

python setup.py register -r pypitest

И это должно сработать.

Ответ 2

Убедитесь, что ваш файл .pypirc находится в вашем/домашнем каталоге.

Ответ 3

Когда я получил эту ошибку, я изменил свой файл .pypirc на:

[distutils]
index-servers =
  pypi
  test

[pypi]
repository: https://pypi.python.org/pypi
username: {{username}}
password: {{password}}

[test]
repository: https://testpypi.python.org/pypi
username: {{username}}
password: {{password}}

а затем я побежал:

 python setup.py register

вместо:

python setup.py register -r pypitest

Это вызвало мое имя пользователя и пароль, которые я ввел, и он успешно зарегистрирован. Примечание. Я следил за Peter Downs 'Guide

Я понял, что это не загружается на pypitest, но мне все же удалось зарегистрировать мой модуль на pypi, используя этот метод.

Ответ 4

Я заменил "PyPI" / "PyPItest" как на строчные буквы: "pypi" / "pypi-test". Ошибка исчезла, но вызвала другую ошибку:

 Server response (403): You are not allowed to store 'mypackage' package information.

Ответ 5

Вы должны удалить комментарии здесь, так как distutils не анализирует их правильно:

index-servers =
       PyPI # the live PyPI
       PyPI-test # test PyPI

Так просто:

index-servers =
       PyPI
       PyPI-test

Или, может быть, даже лучше не использовать смешанные случаи и тире для имен репозитория, как предлагает Junchen. В текущей версии он должен работать.

Ответ 6

Я использовал pypitest, а не pypi-test. Работает как прелесть.

Я следую инструкциям Peter Downs