Python 我应该如何向PyPI注册一个包?
在的文档中,它表示将Python 我应该如何向PyPI注册一个包?,python,pypi,Python,Pypi,在的文档中,它表示将twine与存储库一起使用=https://upload.pypi.org/legacy/.pypirc中的。现在,从最后一点来看,这个URL既是一种传统的做事方式,也是一种不存在的方式: $ twine register dist/scriptdoctest-0.1-py2.py3-none-any.whl Registering package to https://upload.pypi.org/legacy/ Enter your username: MyUserN
twine
与存储库一起使用=https://upload.pypi.org/legacy/.pypirc
中的
。现在,从最后一点来看,这个URL既是一种传统的做事方式,也是一种不存在的方式:
$ twine register dist/scriptdoctest-0.1-py2.py3-none-any.whl
Registering package to https://upload.pypi.org/legacy/
Enter your username: MyUserName
Enter your password:
Registering scriptdoctest-0.1-py2.py3-none-any.whl
HTTPError: 410 Client Error: This API is no longer supported, instead simply upload the file. for url: https://upload.pypi.org/legacy/
现在使用scriptdoctest.egg info/PKG-info
是注册软件包的首选和唯一方法,还是使用twine
或其他CLI工具可以实现这一点?实际上提供了所有必要的信息
TL;博士
setup.py
python setup.py sdist bdist\u wheel
~/.pypirc
,其中包含来自的凭据twine upload dist/*
-不再需要/可能注册.pypirc
如下所示:
[distutils]
index-servers =
pypi
pypitest
[pypi]
repository=https://pypi.python.org/pypi
username=Martin.Thoma
password=[your password]
[pypitest]
repository=https://testpypi.python.org/pypi
username=Martin.Thoma
password=[your password]
使用此存储库URL,它将工作
repository=https://upload.pypi.org/legacy/
我想文档有点过时了,因为在包装方面已经发生了很多事情,包括搬到仓库:遵循Martin Thoma的答案,现在似乎不太受欢迎() 建议使用新的URL“” 或保留未指定的URL并允许选择 因此,您的
.pypirc
应该如下所示:
[pypi]
username=[your username]
password=[your password]
[pypitest]
username=[your username]
password=[your password]
接下来,请执行以下步骤:
setup.py
python setup.py sdist bdist_wheel
~/.pypirc
twine upload dist/*
嗯,很有趣。我不知道Python开始正式推荐使用Twine。捆绳是新的(不是旧的)。有关捆绳的好处,请参阅。如果您不想获得这些好处(或者您拥有最新版本的Python),那么可以随意使用
Python setup.py upload
,这是多年来的传统方法。Python setup.py upload
(或者我是否只尝试了注册
)也给了我一个http410:这个API不再受支持了
。我只是不想拥有一个.pypirc
吗?啊,我刚刚重读了你的作品。我错过了PyPI URL中的“遗留”部分。如果不使用绳线,则是,只需删除.pypirc
文件即可。我自己从来没用过。据我所知(抱歉没有参考资料),他们目前正在更新PyPI。我猜你正在阅读预期的文档,但实际上还没有生效。@Anaphory我今天上传了一个软件包,也许你会发现一些有用的信息。my.pypirc
具有存储库=https://pypi.python.org/pypi
而不是存储库=https://pypi.python.org/legacyi
。我没有使用twine
,当我使用python setup.py register-r pypi
注册我的包时,我得到了相同的服务器响应(410):不再支持此API,而只是上传文件。
response。我跳过了直接使用python setup.py sdist upload-r pypi
。我只是在猜测,你能在更改.pypirc
后直接尝试使用twine upload dist/*
吗?我想你现在已经解决了这个问题?你想写一个答案吗?只有当我把twine命令指向我的pypirc文件时,这才对我有效:twine upload--config file=.pypirc dist/*
你的pypirc在哪里?啊!它应该在~/.pypirc
..吗。。。?我把它放在这个项目的setup.py
的同一个目录中。你可以更改它,但这是默认位置。@Akelian,我相信我们只能忽略真实PyPI的url,但我们仍然必须指定测试PyPI的url,否则工具怎么知道要使用哪个url?