将包提交到 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”的问题?的主要内容,如果未能解决你的问题,请参考以下文章