Python linux 轮子(如何?为什么?)
Python Wheels on linux (how? and why?)
我知道 wheels 是上传到 PyPI 上的模块的二进制版本。
和pip install
- 在 Windows 上:我下载并安装了轮子。
- 在 Ubuntu 上:我应该得到包的源代码分发 但是 在 some cases 我得到了轮子。
- 在 fedora 上:Tricky 我必须使用 dnf 安装
我也尝试将 wheels 添加到 my package。但我只能为 windows.
上传轮子
- 为什么有些软件包为 Linux 平台提供轮子?
- 这样可以吗?提供二进制文件而不是源代码?
- 为什么我不能提供轮子?
注意:我对 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
我知道 wheels 是上传到 PyPI 上的模块的二进制版本。
和pip install
- 在 Windows 上:我下载并安装了轮子。
- 在 Ubuntu 上:我应该得到包的源代码分发 但是 在 some cases 我得到了轮子。
- 在 fedora 上:Tricky 我必须使用 dnf 安装
我也尝试将 wheels 添加到 my package。但我只能为 windows.
上传轮子- 为什么有些软件包为 Linux 平台提供轮子?
- 这样可以吗?提供二进制文件而不是源代码?
- 为什么我不能提供轮子?
注意:我对 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