2015-07-22 23 views
6

Từ tệp setup.py sau, tôi đang cố gắng tạo một bánh xe thuần-python từ một dự án chỉ chứa mã python 2.7.Cách tạo bánh xe Pure-Python

from setuptools import setup 

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

Tuy nhiên, khi tôi chạy python setup.py bdist_wheel file bánh xe được tạo ra là nền tảng cụ thể tập tin foo-0.0.1-cp27-none-macosx_10_9_x86_64.whl bánh xe thay vì dự kiến ​​foo-0.0.1-cp27-none-any.whl. Khi tôi cố gắng để cài đặt bánh xe này trên một nền tảng khác nhau nó không nói it is not compatible with this Python.

Tôi có điều gì đó mà tôi cần phải thay đổi về tệp setup.py hoặc trình thông dịch python, có lẽ, điều đó sẽ cho phép bánh xe này được sử dụng trên bất kỳ nền tảng nào?

Trả lời

1

Thêm trường trình phân loại vào setup.py của tôi đã khắc phục sự cố này.

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

Cách đơn giản là thêm --universal để commandline của bạn, như bạn có thể nhìn thấy từ chạy python setup.py bdist_wheel --help:

--universal  make a universal wheel (default: false) 

Hoặc bạn có thể thêm một file setup.cfg bên cạnh bạn setup.py rằng chăm sóc này:

[bdist_wheel] 
universal = 1 

Nếu bạn không thích một tệp cấu hình nào khác đang đóng gói gói của bạn, bạn chỉ có thể viết tệp như vậy trongcủa mìnhngay trước khi nó gọi setup() và sau đó loại bỏ nó sau khi trả về cuộc gọi đó, đây là những gì tôi làm trong chia sẻ setup.py cho tất cả các dự án của tôi trên PyPI, v.d. được sử dụng trong ruamel.yaml.

+1

Đây phải là giải pháp được chấp nhận –

Các vấn đề liên quan