python-3.x PyPiAssert错误:不支持的模式

h22fl7wq  于 2022-12-15  发布在  Python
关注(0)|答案(5)|浏览(170)

我尝试上传我的软件包到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),没有任何变化。

nkhmeac6

nkhmeac61#

在主目录C:\Users\<username>中添加.pypirc文件,除了从项目的根目录之外,对我来说很有效。

kpbwa7wx

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/*进行生产上传。

jk9hmnmh

jk9hmnmh3#

有同样的问题,并通过指定.pypirc文件的位置解决了它。默认情况下,它应该在~./中,但您可能希望将它存储在您的项目中。
这个问题帮助我:Custom location for .pypirc file

enxuqcxy

enxuqcxy4#

我以前也遇到过一些问题,虽然我不记得是否和你描述的问题完全一样。旧的URL应该重定向到新的,但是PyPi已经移动了,所以这些可能不总是有效。
对于pypi服务器,请尝试以下操作:

https://upload.pypi.org/legacy/

这个是给宠物的

https://test.pypi.org/legacy/
ssm49v7z

ssm49v7z5#

setuptools的官方文档显示

上传你的软件包到PyPI

生成发行版文件之后,下一步就是上传你的发行版,这样其他人就可以使用它了,这个功能是由twine提供的,在Python打包教程中有详细的介绍。
所以我想尝试调试setuptools上传问题是没有意义的。使用setuptools构建,使用twine上传。

相关问题