2009-04-20 25 views
7

Bulunduğum setup.py (kullanarak Setuptools) Öyle Bir kullanıcı yapabilir, ayrı ayrı iki sunulmasını istiyor diğer (bir komut satırı komut dosyası)Bir setup.py'den birden çok proje var mı?

tvnamer, biri tvdb_api (API sarıcı) 'dir, iki şeyi yükler yalnızca API sarmalayıcı olsun ya .. ..to ..

easy_install tvdb_api 

easy_install tvnamer 

(bir gereği olarak ve tvdb_api) tvnamer yüklemek ..to

İki ayrı setup.py komut dosyası olmadan bu mümkün mü? Aynı python setup.py upload komutundan gelen iki ayrı PyPi paketiniz var mı ..?

+2

İki setup.py komut dosyasındaki sorun nedir? –

+0

Yeh, bunu yapmanın yolu bu gibi görünüyor – dbr

cevap

9

setup.py, yalnızca sözleşmeyle paketleri ayarlayan düzenli bir Python dosyasıdır. Sözleşmeyle, setup.py, kurulum kutularına veya setup() işlevinin işlevlerine bir çağrı içerir. İki paketleri birini setup.py kullanmak isterseniz, bir komut satırı argümanı temelinde farklı setup() işlevini çağırabilirsiniz:

import sys 
if len(sys.argv) > 1 and sys.argv[1] == 'script': 
    setup(name='tvnamer', ...) 
else: 
    setup(name='tvdb_api', ...) 

Pratik olsa da, ben sadece iki senaryo yazıyor öneriyoruz.

+0

'sys.args' yok,' sys.argv' demek istediniz? – ncocacola

+0

@ncocacola: Evet, ete sahip olması gereken şey bu. Yazım hatası düzeltdim. –

+0

Bunun, ilk argümanı açmadan işe yaramayacağından şüpheleniyorum. Aksi halde, IMO kurulumu() bunu kurulum komut satırı arabiriminin parametrelerden biri olarak ele alır. – NirIzr

İlgili konular