Python linux 轮子(如何?为什么?)

Python Wheels on linux (how? and why?)

我知道 wheels 是上传到 PyPI 上的模块的二进制版本。

pip install

我也尝试将 wheels 添加到 my package。但我只能为 windows.

上传轮子

注意:我对 Fedora rpm 包了解一些。我现在对 Ubuntu.

上的轮子很感兴趣

Why do some packages provide wheels for Linux platform?

只要源代码分发也可用,为什么不呢? :)

你的问题不清楚。如果你的意思是

Why do some packages provide platform-specific wheels for Linux platform instead of platfom-independent ones?

然后看看 及其答案。如果不是,请澄清您的问题。


On Ubuntu: I should get the source distribution of the package BUT in some cases I get wheels.

尝试使用:

pip install --no-binary :all: somepackage

这应该 pip 下载源代码分发(如果它存在于 PyPI 上)。我不知道为什么 PyPI 上没有 PyQt5 的源码包,可能是因为它们不能用 pip 安装并且需要一个完整的工具链来编译。


Is this okay? Providing binaries instead of the source?

只要您同时提供二进制文件和源代码就可以了。我建议你这样做。


Why I cannot provide wheels?

尝试python setup.py bdist_wheel。您需要安装 wheel 软件包(在 PyPI) to make it work. If your package supports both Python 2 and 3 and contains no C extensions, append the --universal option to make a "universal wheel".

bdist_wheel 替换为 sdist 以进行源分发。它将在 dist 目录中创建一个存档。

sdist creates the archive of the default format for the current platform. The default format is a gzip’ed tar file (.tar.gz) on Unix, and ZIP file on Windows.

You can specify as many formats as you like using the --formats option, for example:

python setup.py sdist --formats=gztar,zip

to create a gzipped tarball and a zip file

(引用自 https://docs.python.org/3/distutils/sourcedist.html


有关包装和车轮的更多信息可在此处获得:https://packaging.python.org/distributing/#packaging-your-project