2013-10-18 5 views
10

python en Setuptools'u (python setup.py sdist) kullanarak bir kaynak dağılımını oluşturmak Çizmeyi içeren MANIFEST.in dosyası kullanıyorum: recursive-include mypackageMANIFEST.in?

Ben mypackage dizin içinde olmayan bazı modül dosyaları dahil etmek istiyorum, çünkü

. Bununla birlikte, hedeflerim benim kaynak dağıtımımda yer almak istemediğim mypackage dizininin altında sembolik bağlantılar da var. MANIFEST.in'un içinde "aşkları görmezden" belirtmenin bir yolu var mı?

Biliyorum ... Muhtemelen oradaki simetlerin olmamalı.

+0

Belki de "setup.py" 'nizin başlangıcında 'MANIFEST_template.in' 'MANIFEST.in' döndüren bir işlevi çalıştırarak bunları dışarıda bırakabilirsiniz. [Bu gönderi] 'deki bilgilerle birlikte symlinks için tarama (http://stackoverflow.com/questions/17889368/if-path-is-symlink-to-another-path). Yine de böyle bir seçenek varsa iyi olurdu. – greschd

+2

Bilgimden en iyi şekilde, paketinize her şeyi dahil etmek için 'özyinelemeli mypackage'ı kullanmaktan kaçınılmalıdır. Bu, dağıtımlarınızda gerçekten istemediğiniz birçok şeyi alabilir. Belirli dosyaları az ve özel olduklarında listelemelisiniz ya da başka bir deyişle, uzantı veya diğer dosya adı düzenine göre ekleyin. özyinelemle-mypackage * .mydataformat 'içerir. – taleinat

+1

Eğer 'MANIFEST.in' içinde özyinelemeli' içerdikten sonra 'dışlama' ifadesini açıkça ekleyebileceğiniz simitleri biliyorsanız - yönergeler sırayla değerlendirilir. – fpbhb

cevap

3

Distutils herhangi bir özel bağlantı sunmuyor. distutils code'u gözden geçirebilir ve MANIFEST.in dosyasının işleyişinin, os.listdir yinelemeli olarak, simetrikler için özel bir işlem yapmadan, basit bir desen eşlemesi gerçekleştirdiğini görebilirsiniz.

+3

Bu sorunun cevabını, orijinal soruma "hayır" anlamına geldiğini açıklığa kavuşturmak için düzenlemek isteyebilirsiniz - kaputun altında olmadığından, dikkat dağınıklıklarının görmezden geldiği söylenemez. – foobarbecue