将包提交到 PyPI 时如何解决“.pypic 中找不到 PyPI-test”的问题?

Posted

技术标签:

【中文标题】将包提交到 PyPI 时如何解决“.pypic 中找不到 PyPI-test”的问题?【英文标题】:How to fix the issue "PyPI-test not found in .pypic" when submit package to PyPI? 【发布时间】:2014-03-16 10:21:43 【问题描述】:

我按照指南How to submit a package to PyPI 提交了一个包。 它抛出了以下错误:

回溯(最近一次通话最后): 文件“setup.py”,第 27 行,在 '编程语言:: Python', 文件“/usr/lib64/python2.6/distutils/core.py”,第 152 行,在设置中 dist.run_commands() 文件“/usr/lib64/python2.6/distutils/dist.py”,第 975 行,在 run_commands self.run_command(cmd) 文件“/usr/lib64/python2.6/distutils/dist.py”,第 995 行,在 run_command cmd_obj.run() 文件“/usr/lib/python2.6/site-packages/setuptools/command/register.py”,第 9 行,运行中 _register.run(self) 运行中的文件“/usr/lib64/python2.6/distutils/command/register.py”,第 33 行 self._set_config() _set_config 中的文件“/usr/lib64/python2.6/distutils/command/register.py”,第 84 行 raise ValueError('%s not found in .pypirc' % self.repository) ValueError:在 .pypirc 中找不到 PyPI 测试

我的 .pypirc 文件上下文是:

[distutils] # 这告诉 distutils 你可以推送到哪些包索引 索引服务器 = PyPI # 实时 PyPI PyPI-test # 测试 PyPI [PyPI] # 实时 PyPI 的身份验证详细信息 存储库:https://PyPI.python.org/PyPI 用户名:用户名 密码:密码 [PyPI-test] # 测试 PyPI 的认证细节 存储库:https://testPyPI.python.org/PyPI 用户名:用户名

我的操作系统环境是

CentOS release 6.2 (Final)
和 python env 是
Python 2.6.6

是什么原因以及如何解决?

【问题讨论】:

我认为关键是 .pyirc 文件应该放在哪里。请参阅下面的答案。 【参考方案1】:

为了完成这项工作,需要避免一些陷阱:

.pypirc 文件应位于HOME 目录中。这适用于 Windows 和 Unix。

如果它不起作用,那是因为在HOME 变量指示的路径中找不到.pypirc 文件。

在 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

这应该可以解决问题。

【讨论】:

它有效。我的问题是我的.pypirc 文件的位置。 @nu-everest python 打包用户指南对此真的不清楚,我什至不确定它是否提到了文件应该放在哪里。很高兴您能解决您的问题。 我想强调这部分答案As for the file, don't forget the distutil part, otherwise it won't work. Your file should be exactly like that: @Clintm 我已经编辑了帖子以进一步突出显示它,感谢您的反馈【参考方案2】:

您应该在此处删除 cmets,因为 distutils 无法正确解析它们:

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

就这样:

index-servers =
       PyPI
       PyPI-test

或者最好不要像 Junchen 建议的那样,在存储库名称中使用混合大小写和破折号。不过,对于当前版本,它应该可以工作。

【讨论】:

【参考方案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。

【讨论】:

我遇到了类似的问题。您在哪里可以找到允许您上传到 testpypi 的解决方案?我在 Windows 7 上。 很遗憾,我做不到,抱歉。 @Einstein:看看我的回答。您的命令有一个明显的问题,您正在输入-r pypitest,但您的回购标题为test。这行不通 @nueverest:查看我的答案,如果需要,请提供一些反馈。我相信它应该可以解决您的问题【参考方案4】:

我使用了 pypitest,而不是 pypi-test。像魅力一样工作。

我按照Peter Downs的指示进行操作

【讨论】:

【参考方案5】:

确保您的 .pypirc 文件位于您的 /home 目录中。

【讨论】:

这给了我python: can't open file 'setup.py': [Errno 2] No such file or directory【参考方案6】:

我将“PyPI”/“PyPItest”都替换为小写字母:“pypi”/“pypi-test”。错误消失,但提示另一个错误:

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

【讨论】:

以上是关于将包提交到 PyPI 时如何解决“.pypic 中找不到 PyPI-test”的问题?的主要内容,如果未能解决你的问题,请参考以下文章

Travis pypi 包版本

如何将原始 Python 包上传到 PyPI?

Pypi 和 TestPypi 的单独帐户

PyPI 上的开发版本

cx_freeze:如何将包文件添加到 library.zip 中?

python开源包提交到pypi社区