我如何将 bdist 包上传到 PyPI?install_requires?
How do I `install_requires` a bdist package uploaded to PyPI?
我有一个依赖可执行文件的 Python 包。由于可执行文件需要相当长的时间来构建,我想使用 bdist
通过我公司的内部 PyPI 索引分发它。我在 macOS 和 Linux.
上都需要它
我的 setup.py
在两个操作系统上都运行良好。 运行python setup.py bdist upload -r private-pypi
后索引有如下两个包:
- foo-0.0.1.linux-x86_64.tar.gz
- foo-0.0.1.macosx-10.12-intel.tar.gz
但是,我 运行 遇到将 foo
包指定为其他项目中的 install_requires
要求的问题。我有另一个 bar
包需要它。我对它有以下要求(在 setup.py
和 requirements.txt
文件中):
foo>=0.0.1,==0.*
我们还有其他几个软件包,这种需求格式适用于所有这些软件包,但不适用于这个软件包。我得到的错误是:
Could not find a version that satisfies the requirement foo==0.*,>=0.0.1
(from bar==1.6.12
) (from versions: 0.0.1.linux-x86_64
, 0.0.1.macosx-10.12-intel
)
No matching distribution found for foo==0.*,>=0.0.1
(from bar==1.6.12
)
即使在构建已上传到 PyPI 的包的同一台机器上,我也会遇到此错误。
在这种情况下,bar
包与 pip install --upgrade /path/to/bar
一起安装(并且 .pypirc
配置为查看我们的内部 PyPI 索引),但它也可以在同一个私有PyPI 索引。虽然我还没有尝试 pip install
从那里开始,但我怀疑我会得到同样的错误。
AFAIK,这是我们唯一一个作为 bdist
而不是 sdist
分发的包。源分发版没有在其版本号后附加平台(它是 -0.0.1.tar.gz
而不是 -0.0.1.linux-x86_64.tar.gz
),所以问题几乎肯定存在。
这仍然让我无所适从。我很困惑 bdist
制作了一个 pip
似乎无法解析的包版本。
我的目标是在包含可执行文件的 PyPI 上获取这个包,然后能够在仍然限制版本的情况下通过客户端下载它。我应该怎么做呢?
使用 bdist_wheel
似乎解决了问题。
我有一个依赖可执行文件的 Python 包。由于可执行文件需要相当长的时间来构建,我想使用 bdist
通过我公司的内部 PyPI 索引分发它。我在 macOS 和 Linux.
我的 setup.py
在两个操作系统上都运行良好。 运行python setup.py bdist upload -r private-pypi
后索引有如下两个包:
- foo-0.0.1.linux-x86_64.tar.gz
- foo-0.0.1.macosx-10.12-intel.tar.gz
但是,我 运行 遇到将 foo
包指定为其他项目中的 install_requires
要求的问题。我有另一个 bar
包需要它。我对它有以下要求(在 setup.py
和 requirements.txt
文件中):
foo>=0.0.1,==0.*
我们还有其他几个软件包,这种需求格式适用于所有这些软件包,但不适用于这个软件包。我得到的错误是:
Could not find a version that satisfies the requirement
foo==0.*,>=0.0.1
(frombar==1.6.12
) (from versions:0.0.1.linux-x86_64
,0.0.1.macosx-10.12-intel
)
No matching distribution found forfoo==0.*,>=0.0.1
(frombar==1.6.12
)
即使在构建已上传到 PyPI 的包的同一台机器上,我也会遇到此错误。
在这种情况下,bar
包与 pip install --upgrade /path/to/bar
一起安装(并且 .pypirc
配置为查看我们的内部 PyPI 索引),但它也可以在同一个私有PyPI 索引。虽然我还没有尝试 pip install
从那里开始,但我怀疑我会得到同样的错误。
AFAIK,这是我们唯一一个作为 bdist
而不是 sdist
分发的包。源分发版没有在其版本号后附加平台(它是 -0.0.1.tar.gz
而不是 -0.0.1.linux-x86_64.tar.gz
),所以问题几乎肯定存在。
这仍然让我无所适从。我很困惑 bdist
制作了一个 pip
似乎无法解析的包版本。
我的目标是在包含可执行文件的 PyPI 上获取这个包,然后能够在仍然限制版本的情况下通过客户端下载它。我应该怎么做呢?
使用 bdist_wheel
似乎解决了问题。