我尝试上传我的软件包到PyPi,并想出了这个错误:
Traceback (most recent call last):
File "setup.py", line 11, in <module>
author_email= #my email,
File "C:\Programming\Python\Anaconda\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Programming\Python\Anaconda\lib\distutils\dist.py", line 955, in run_commands
self.run_command(cmd)
File "C:\Programming\Python\Anaconda\lib\distutils\dist.py", line 974, in run_command
cmd_obj.run()
File "C:\Programming\Python\Anaconda\lib\distutils\command\upload.py", line 63, in run
self.upload_file(command, pyversion, filename)
File "C:\Programming\Python\Anaconda\lib\distutils\command\upload.py", line 73, in upload_file
raise AssertionError("unsupported schema " + schema)
由于python setup.py register -r pypitest
不再需要上传包,我运行以下命令:python setup.py sdist upload -r pypitest
,在我键入pypitest的密码后出现错误
下面是我的setup.py
和.pypirc
文件的外观。
setup.py
from setuptools import setup
setup(
name='instapi',
packages=['instapi'],
version='0.1',
description='Clean and simple Instagram API for Python 3.x',
url='https://github.com/SemptraStar/instapi',
download_url = 'https://github.com/SemptraStar/instapi/archive/v._0.1.tar.gz',
author= #me,
author_email= #also me,
)
.pypirc
[distutils]
index-servers =
pypi
pypitest
[pypi]
repository=https://pypi.python.org/pypi
username= # username
password= # password
[pypitest]
repository=https://testpypi.python.org/pypi
username= # username
password= # password
更新1
我把pypi的仓库URL改为https://upload.pypi.org/legacy/
,pypitest的仓库URL改为https://test.pypi.org/legacy/
,同时更新了最新版本的setuptools(36.3.0),没有任何变化。
5条答案
按热度按时间nkhmeac61#
在主目录
C:\Users\<username>
中添加.pypirc
文件,除了从项目的根目录之外,对我来说很有效。kpbwa7wx2#
你需要做的是使用麻线。确保版本是1. 8 +
1.通过
pip install twine
安装1.请确保您的.pypirc文件具有www.example.com的正确凭据test.pypi.org,因为它是一个独立于生产pypi的数据库。
1.构建您的sdist
python setup.py sdist
。1.使用
twine upload --repository pypitest dist/*
进行测试上载。1.使用
twine upload --repository pypi dist/*
进行生产上传。jk9hmnmh3#
有同样的问题,并通过指定.pypirc文件的位置解决了它。默认情况下,它应该在~./中,但您可能希望将它存储在您的项目中。
这个问题帮助我:Custom location for .pypirc file
enxuqcxy4#
我以前也遇到过一些问题,虽然我不记得是否和你描述的问题完全一样。旧的URL应该重定向到新的,但是PyPi已经移动了,所以这些可能不总是有效。
对于pypi服务器,请尝试以下操作:
这个是给宠物的
ssm49v7z5#
setuptools的官方文档显示
上传你的软件包到PyPI
生成发行版文件之后,下一步就是上传你的发行版,这样其他人就可以使用它了,这个功能是由twine提供的,在Python打包教程中有详细的介绍。
所以我想尝试调试setuptools上传问题是没有意义的。使用setuptools构建,使用twine上传。