"setup.py upload"失败,显示"上传失败(401):您必须识别出编辑包信息"

dbr*_*dbr 46 python packaging setuptools

跑步时......

python setup.py sdist register upload
Run Code Online (Sandbox Code Playgroud)

..我得到以下输出:

running register
We need to know who you are, so please choose either:
 1. use your existing login,
 2. register as a new user,
 3. have the server generate a new password for you (and email it to you), or
 4. quit
Your selection [default 1]:  1
Username: example
Password: ...
Registering mypackage to http://pypi.python.org/pypi
Server response (200): OK
I can store your PyPI login so future submissions will be faster.
(the login will be stored in /Users/dbr/.pypirc)
Save your login (y/N)?y
running upload
Submitting dist/mypackage-1.2.1.tar.gz to http://pypi.python.org/pypi
Upload failed (401): You must be identified to edit package information
Run Code Online (Sandbox Code Playgroud)

它提示保存登录详细信息,尽管~/.pypirc已包含此信息.然后它无法上传我拥有的包的文件,并且具有完全的写访问权限.

dbr*_*dbr 61

刚刚找到这个页面,它解决了这个问题:

我也注意到,虽然它要求我保存我的登录信息,并且我每次都打Y,但它仍然问我用户名和密码.事实证明它正在如下错误地保存信息:

[pypi]
username:dcramer
password:*******
Run Code Online (Sandbox Code Playgroud)

改变它解决了这个问题:

[server-login]
username:dcramer
password:********
Run Code Online (Sandbox Code Playgroud)

以上内容进入.pypirc文件在用户的主目录.

呃..我想这可能是分发尝试的好时机..

  • 这个文件(对我来说)是`〜/ .pypirc`.可能会有所帮助. (4认同)
  • 保存此信息的文件在哪里?(在Windows上?) (2认同)
  • 该文件是.pypirc,我发现它在Windows上的Users文件夹的根目录(对应于`os.path.expanduser("〜")`)但是添加信息并没有修复任何问题.删除[pypi]部分导致ConfigParser出错.根据[这个问题]修正了它(http://stackoverflow.com/questions/3773613/pypi-issues-upload-failed-401-you-must-be-identified-to-edit-package-inform):你需要一个Windows上的HOME环境变量,指向文件的文件夹. (2认同)

dli*_*ink 19

这里列出的〜/ .pypirc没有任何变化对我有效.

这对我有用,没有改变〜/ .pypirc.我在命令行中添加了"-r https://www.python.org/pypi ":

python setup.py register sdist upload -r https://www.python.org/pypi
Run Code Online (Sandbox Code Playgroud)

我的〜/ .pypirc看起来像这样

[distutils]
index-servers: pypi

[pypi]
username: dlink
password: ******** (the real one)
Run Code Online (Sandbox Code Playgroud)