上传 PyPi 包错误
Posted
技术标签:
【中文标题】上传 PyPi 包错误【英文标题】:Uploading PyPi Package error 【发布时间】:2017-03-29 07:03:27 【问题描述】:我正在尝试上传一个 pypi 包,首先我发现 setup_tools 真的很旧,所以现在更新了,虽然我仍然遇到同样的错误,而且谷歌在这个问题上并没有真正帮助我。
python setup.py sdist upload -r pypitest
/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'include_package_data'
warnings.warn(msg)
/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
warnings.warn(msg)
/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
warnings.warn(msg)
running sdist
running check
warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list)
warning: sdist: standard file not found: should have one of README, README.txt
writing manifest file 'MANIFEST'
creating arcsightrest-1.0
making hard links in arcsightrest-1.0...
hard linking arcsightrest.py -> arcsightrest-1.0
hard linking setup.cfg -> arcsightrest-1.0
hard linking setup.py -> arcsightrest-1.0
Creating tar archive
removing 'arcsightrest-1.0' (and everything under it)
running upload
Traceback (most recent call last):
File "setup.py", line 20, in <module>
'python-dateutil',
File "/usr/lib64/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/usr/lib64/python2.7/distutils/command/upload.py", line 60, in run
self.upload_file(command, pyversion, filename)
File "/usr/lib64/python2.7/distutils/command/upload.py", line 70, in upload_file
raise AssertionError("unsupported schema " + schema)
AssertionError: unsupported schema
如果我尝试运行注册它就可以了:
python setup.py register -r test
/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'include_package_data'
warnings.warn(msg)
/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
warnings.warn(msg)
/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
warnings.warn(msg)
running register
running check
Registering arcsightrest to https://testpypi.python.org/pypi
Server response (200): OK
以前有人遇到过这个问题吗?
.pypirc 文件也可用,并且可以与 register 一起使用。
[distutils]
index-servers =
pypi
test
[pypi]
repository: https://pypi.python.org/pypi
username: ****
password: ****
[test]
repository: https://testpypi.python.org/pypi
username: ****
password: ****
Setup.py 文件(已更新答案中提到的导入):
from setuptools import setup
setup(
name='arcsightrest',
version='1.0',
description='Python library to connect to the HP Arcsight Logger REST API',
author='***',
license='MIT',
author_email='***',
url='****',
download_url='****',
keywords=['arcsight', 'logger', 'rest'],
include_package_data=True,
zip_safe=True,
py_modules=['arcsightrest'],
install_requires=[
'pytz',
'untangle',
'requests',
'python-dateutil',
],
)
更新: 尝试更改 setup.py 让我更接近了,由于某种原因它现在要求我输入密码,但最终结果仍然是相同的错误:
python setup.py sdist upload -r pypitest
running sdist
running egg_info
writing requirements to arcsightrest.egg-info/requires.txt
writing arcsightrest.egg-info/PKG-INFO
writing top-level names to arcsightrest.egg-info/top_level.txt
writing dependency_links to arcsightrest.egg-info/dependency_links.txt
reading manifest file 'arcsightrest.egg-info/SOURCES.txt'
writing manifest file 'arcsightrest.egg-info/SOURCES.txt'
warning: sdist: standard file not found: should have one of README, README.rst, README.txt
running check
creating arcsightrest-1.0
creating arcsightrest-1.0/arcsightrest.egg-info
copying files to arcsightrest-1.0...
copying arcsightrest.py -> arcsightrest-1.0
copying setup.cfg -> arcsightrest-1.0
copying setup.py -> arcsightrest-1.0
copying arcsightrest.egg-info/PKG-INFO -> arcsightrest-1.0/arcsightrest.egg-info
copying arcsightrest.egg-info/SOURCES.txt -> arcsightrest-1.0/arcsightrest.egg-info
copying arcsightrest.egg-info/dependency_links.txt -> arcsightrest-1.0/arcsightrest.egg-info
copying arcsightrest.egg-info/requires.txt -> arcsightrest-1.0/arcsightrest.egg-info
copying arcsightrest.egg-info/top_level.txt -> arcsightrest-1.0/arcsightrest.egg-info
copying arcsightrest.egg-info/zip-safe -> arcsightrest-1.0/arcsightrest.egg-info
Writing arcsightrest-1.0/setup.cfg
Creating tar archive
removing 'arcsightrest-1.0' (and everything under it)
running upload
Password:
Traceback (most recent call last):
File "setup.py", line 20, in <module>
'python-dateutil',
File "/usr/lib64/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/usr/lib64/python2.7/distutils/command/upload.py", line 60, in run
self.upload_file(command, pyversion, filename)
File "/usr/lib64/python2.7/distutils/command/upload.py", line 70, in upload_file
raise AssertionError("unsupported schema " + schema)
AssertionError: unsupported schema
安装工具版本:
setuptools 28.8.0 from /usr/lib/python2.7/site-packages (Python 2.7)
【问题讨论】:
【参考方案1】:不支持的架构指的是存储库 URL 的 URL scheme;它必须是 http
或 https
之一。
发生错误是因为 -r
采用 URL 到存储库,或在 .pypirc
中指定的确切名称:
% python setup.py upload --help
...
Options for 'upload' command:
--repository (-r) url of repository [default:
https://upload.pypi.org/legacy/]
您的.pypirc
指定了test
,但您正在尝试pypitest
。
distutils.core.setup
无法识别其中一些选项(UserWarning: Unknown distribution option: ...
证明了这一点);因此你应该改用setuptools.setup
:
from setuptools import setup
setup(
...
)
(并确保setuptools
是最新的)。
【讨论】:
我添加了更多信息,以及更改后的输出。注册仍然有效.. 仅上传也要求输入密码。 正确答案,第一个问题是旧的 setuptools,另一个是 repo 名称错误 谢谢 - 这只是救了我的培根(和理智!)【参考方案2】:我遇到了同样的错误。然后,我意识到错误应该打印模式。但是我的错误是这样的
...
raise AssertionError("unsupported schema " + schema)
AssertionError: unsupported schema
请注意,schema
是一个空字符串。所以,在我看来,还没有找到模式。我尝试了很多东西,但只有更改 .pypirc
文件的权限才有效。我刚刚做了
$ sudo chmod 777 ~/.pypirc
【讨论】:
以上是关于上传 PyPi 包错误的主要内容,如果未能解决你的问题,请参考以下文章