【问题标题】:PyPi AssertionError: unsupported schemaPyPi AssertionError:不支持的架构
【发布时间】:2018-02-11 00:47:43
【问题描述】:

我正在尝试将我的包上传到 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 的 https://test.pypi.org/legacy/。还更新了最新版本 (36.3.0) 的 setuptools。没有任何改变。

【问题讨论】:

    标签: python python-3.x anaconda pypi


    【解决方案1】:

    在主目录C:\Users\&lt;username&gt; 中添加.pypirc 文件,但从项目的根目录除外,对我有用。

    【讨论】:

    • 首先我忽略了这一点,但后来决定尝试 - 它确实解决了问题!谢谢!
    • 对我有用,对于 MacOS,路径应该是 ~/.pypirc
    【解决方案2】:

    您需要做的是使用麻线。确保版本是 1.8+

    1. 通过pip install twine安装
    2. 确保您的 .pypirc 文件具有正确的 test.pypi.org 凭据,因为它是与生产 pypi 不同的数据库。
    3. 构建您的 sdist python setup.py sdist
    4. 使用twine upload --repository pypitest dist/* 进行测试上传。
    5. 使用twine upload --repository pypi dist/* 进行产品上传。

    【讨论】:

      【解决方案3】:

      遇到了同样的问题,并通过指定 .pypirc 文件的位置来解决它。默认情况下,它应该在 ~./ 中,但您可能希望将它存储在您的项目中。

      这个问题在这里帮助了我: Custom location for .pypirc file

      【讨论】:

        【解决方案4】:

        我之前也遇到过一些麻烦,但我不记得这是否与您描述的完全相同的问题。旧的 URL 应该重定向到新的,但是 PyPi 已经移动了,所以这些可能并不总是有效。

        在 pypi 服务器上试试这个:

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

        还有这个用于 pypitest:

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

        【讨论】:

        • 它似乎在抱怨你的网址,所以我会专注于那个。出于某种原因,它认为您输入了无效的 URL(特别是它不是 httphttps。尝试直接复制和粘贴我的 URL,并在末尾加上斜杠。还要确保 setuptools 和所有内容完全是最新的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-26
        • 2013-11-09
        • 2014-02-07
        • 2013-02-08
        • 1970-01-01
        • 2021-02-22
        相关资源
        最近更新 更多