2015-07-22 25 views
6

Aşağıdaki setup.py dosyasından, yalnızca python 2.7 kodunu içermesi gereken bir projeden bir saf python tekerleği oluşturmaya çalışıyorum. AncakBir Pure-Python tekerleği oluşturma

from setuptools import setup 

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

, ben oluşturulan tekerlek dosyasını python setup.py bdist_wheel çalıştırmak yerine beklenen foo-0.0.1-cp27-none-any.whl ait platforma özel foo-0.0.1-cp27-none-macosx_10_9_x86_64.whl tekerlek dosyasıdır. Bu tekerleği farklı bir platformda kurmaya çalıştığımda, it is not compatible with this Python diyor.

Belki de bu tekerleğin herhangi bir platformda kullanılmasına izin verecek olan setup.py dosyası veya python yorumlayıcısı hakkında değiştirmem gereken bir şey var mı?

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

Alternatif sonraki bu ilgilenir sizin setup.py olduğu bir setup.cfg dosyayı ekleyebilirsiniz: Eğer python setup.py bdist_wheel --help çalışmasını görebileceğiniz gibi

cevap

1

Sınıflandırıcılar alanını benim setup.py dosyasına eklemek bu sorunu giderdi.

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

basit şekilde, komutsatırına --universal eklemektir

[bdist_wheel] 
universal = 1 

Paketinizi başka bir yapılandırma dosyasından hoşlanmıyorsanız, ,'inize böyle bir dosya yazabilirsiniz., setup() numaralı telefonu aramadan hemen önce ve daha sonra bu çağrı geri döndükten sonra kaldırır, bu, PyPI üzerindeki tüm projelerim için paylaşılan setup.py içinde yaptığım şeydir. ruamel.yaml kullanılır.

+1

Bu kabul edilen çözüm olmalı –