从以下setup.py文件中,我试图从一个应该只包含python 2.7代码的项目创建一个纯python轮。
from setuptools import setup
setup(
name='foo',
version='0.0.1',
description='',
url='',
install_requires=[
'bpython',
'Django==1.8.2',
],
)
但是,当我运行python setup.py bdist_wheel
时,生成的wheel文件是特定于平台的foo-0.0.1-cp27-none-macosx_10_9_x86_64.whl
轮文件而不是预期的foo-0.0.1-cp27-none-any.whl
。当我尝试在另一个平台上安装此滚轮时,它无法说it is not compatible with this Python
。
我需要改变一些关于setup.py文件或python解释器的东西,这可能会让这个轮子在任何平台上使用?
答案 0 :(得分:10)
简单的方法是在命令行中添加--universal
,正如您在运行python setup.py bdist_wheel --help
时所看到的那样:
--universal make a universal wheel (default: false)
或者,您可以在setup.cfg
旁边添加setup.py
文件
照顾这个:
[bdist_wheel]
universal = 1
如果你不喜欢另一个破坏你的包的配置文件,
您可以在调用setup.py
之前在setup()
中编写这样的文件,然后在该调用返回后将其删除,这就是我所做的
在我的所有PyPI项目的共享setup.py
中,例如用于ruamel.yaml。
答案 1 :(得分:1)
将分类器字段添加到我的setup.py修复了此问题。
from setuptools import setup
setup(
name='foo',
version='0.0.1',
description='',
url='',
classifiers=[
'Programming Language :: Python :: 2.7',
],
install_requires=[
'bpython',
'Django==1.8.2',
],
)