Linux 上的 Python Wheels(如何?为啥?)
Posted
技术标签:
【中文标题】Linux 上的 Python Wheels(如何?为啥?)【英文标题】:Python Wheels on linux (how? and why?)Linux 上的 Python Wheels(如何?为什么?) 【发布时间】:2016-11-14 10:20:02 【问题描述】:我知道***是上传到 PyPI 上的模块的二进制版本。
pip install
我也尝试将 wheels 添加到 my package。但我只能上传 windows 的***。
为什么有些软件包会为 Linux 平台提供***? 这样可以吗?提供二进制文件而不是源代码? 为什么我不能提供***?注意:我对 Fedora rpm 软件包有所了解。我现在对 Ubuntu 上的***很感兴趣。
【问题讨论】:
【参考方案1】:为什么有些包会为 Linux 平台提供***?
只要源代码分发可用,他们为什么不应该这样做? :)
你的问题不清楚。如果你的意思是
为什么有些软件包为 Linux 平台提供了特定于平台的***,而不是独立于平台的***?
然后看看this question 及其答案。如果不是,请澄清您的问题。
在 Ubuntu 上:我应该在 some cases 中获得软件包的源代码分发,但我得到了***。
尝试使用:
pip install --no-binary :all: somepackage
这应该使pip
下载源代码分发(如果它存在于 PyPI 上)。我不知道为什么 PyPI 上没有 PyQt5 的源包,可能是因为它们不能用 pip
安装,需要一个完整的工具链来编译。
这样好吗?提供二进制文件而不是源代码?
只要您提供二进制文件和源代码就可以了。我建议你这样做。
为什么我不能提供***?
试试python setup.py bdist_wheel
。您需要安装wheel
包(在PyPI 上)才能使其工作。如果您的包同时支持 Python 2 和 3 并且不包含 C 扩展,请附加 --universal
选项以创建“universal wheel”。
将bdist_wheel
替换为sdist
以进行源代码分发。它将在dist
目录中创建一个存档。
sdist 为当前平台创建默认格式的存档。默认格式在 Unix 上是 gzip 的 tar 文件 (
.tar.gz
),在 Windows 上是 ZIP 文件。您可以使用
--formats
选项指定任意数量的格式,例如:python setup.py sdist --formats=gztar,zip
创建一个 gzipped tarball 和一个 zip 文件
(引用自https://docs.python.org/3/distutils/sourcedist.html)
更多关于包装和***的信息可以在这里找到:https://packaging.python.org/distributing/#packaging-your-project
【讨论】:
当我尝试在 Linux 上上传车轮时出现错误,我会尽快将其粘贴到此处。 (今天) packaging.python.org/current/#id8 "PyPI 目前只允许上传 Windows 和 Mac OS X 的***,它们应该与提供从 python.org 下载的二进制安装程序兼容。必须对***进行增强允许使用 linux ***之前的兼容性标记方案。"以上是关于Linux 上的 Python Wheels(如何?为啥?)的主要内容,如果未能解决你的问题,请参考以下文章
Python ERROR: Could not build wheels for twisted-iocpsupport, which is required to install pyproject
错误记录Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 and cannot be in )(代
如何从 linux 上的 python 脚本获取我的本地 IP 地址? [复制]