如何创建Pure-Python轮

时间:2015-07-22 20:13:12

标签: python setup.py python-wheel

从以下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解释器的东西,这可能会让这个轮子在任何平台上使用?

2 个答案:

答案 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',
    ],
)