Search code examples
pythonsetup.pypython-wheel

How to create a Pure-Python wheel


From the following setup.py file, I am trying to create a pure-python wheel from a project that should contain only python 2.7 code.

from setuptools import setup

setup(
    name='foo',
    version='0.0.1',
    description='',
    url='',
    install_requires=[
        'bpython',
        'Django==1.8.2',
    ],
)

However, when I run python setup.py bdist_wheel the wheel file that is generated is platform specific foo-0.0.1-cp27-none-macosx_10_9_x86_64.whl wheel file instead of the expected foo-0.0.1-cp27-none-any.whl. When I try to install this wheel on a different platform it fails saying it is not compatible with this Python.

I there something I need to change about the setup.py file or python interpreter, perhaps, that will allow this wheel to be used on any platform?


Solution

  • Adding the classifiers field to my setup.py fixed this issue.

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