2014-02-17 1 views
15

Я последовал за гидом How to submit a package to PyPI, чтобы отправить один пакет. Он бросил ошибку ниже:Как исправить проблему «PyPI-тест не найден в .pypic» при отправке пакета в 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 

Мой контекст .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}} 

Мой OS окр является

CentOS release 6.2 (Final)
и питон окр является
Python 2.6.6
.

В чем причина и как его исправить?

+1

Я считаю, что ключевым моментом является файл .pyirc. См. Мой ответ ниже. – Overdrivr

ответ

1

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

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

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

+0

Это дает мне 'python: не могу открыть файл setup.py ': [Errno 2] Нет такого файла или каталога' – Pithikos

0

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

я следовать инструкции по Peter Downs

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, используя этот метод.

+0

У меня такая же проблема. Где вы когда-либо могли найти решение, которое позволило вам загрузить на testpypi? Я нахожусь в Windows 7. –

+0

К сожалению, мне не удалось, извините. – Einstein

+0

@ Эйнштейн: проверьте мой ответ. Существует четкая проблема с вашей командой, вы набираете '-r pypitest', но ваше репо называется' test'. Это не может работать – Overdrivr

1

Вы должны удалить комментарии здесь с Distutils не анализирует их должным образом:

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

Так просто:

index-servers = 
     PyPI 
     PyPI-test 

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

15

Некоторые ловушки, чтобы избежать того, чтобы сделать эту работу:

Файл .pyirc, как ожидается, в директории 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 (хранилище) с pypitest

python setup.py register -r pypitest 

И что следует сделать трюк.

+1

Это работает. Проблема для меня была в расположении моего файла '.pypirc'. –

+2

@ nu-everest Руководство пользователя упаковки python на самом деле не понятно, я даже не уверен, что он упоминает, куда должен идти файл. Рад, что вы смогли решить свою проблему. – Overdrivr

 Смежные вопросы

  • Нет связанных вопросов^_^