2010-06-08 25 views
19

ben .. ben paketi ile birlikte birkaç veri dosyaları dahil çalışıyorum distutils için yeni .. İşte benim kodudur python setup.py sdist yürüttükten sonra oluşturulanpiton distutils ..

from distutils.core import setup 

setup(name='Scrapper', 
     version='1.0', 
     description='Scrapper',  
     packages=['app', 'db', 'model', 'util'], 
     data_files=[('app', ['app/scrapper.db'])]  
    ) 

zip dosyasını data_files içermez scrapper.db dosyasını içermez. App dizininde scrapper.db dosyası var ..

Yardımlarınız için teşekkürler.

+2

Sorunuzla ilgisi olmayan bir açıklama: Dört paket için çok yaygın olarak kullanılan dört isim yerine üst düzey bir paket adı, örneğin kazıyıcı kullanmanız önerilir. –

+0

Hangi python sürümünü kullanıyorsunuz? –

cevap

21

Muhtemelen "include app/scrapper.db" içeren MANIFEST.in dosyasını eklemeniz gerekir.

Bu, aşağıdakileri gerektiren bir sorun olduğunda, bir hata: data_files veya package_data ürününde oluşturulan MANIFEST otomatik olarak dahil edilmelidir. Fakat Python 2.6 ve daha önceki sürümlerde, öyle değil, yani MANIFEST.in'a dahil etmeniz gerekiyor.

Hata, Python 2.7'de giderilmiştir.

+3

Hala Python 2.7.1+ ile aynı sorunu yaşıyorum. [Bu hata raporu] 'nu buldum (http://bugs.python.org/issue2279) fakat durumun neden "işlendiği/reddedildiğini" anlamıyorum. MANIFEST.in kullanmaya geri dönmeden nasıl çözüleceğine dair herhangi bir rehber? Teşekkürler! – mac

+1

Yapılmış/reddedilen durum, sabit hatalarla kullanılır. –

1

MANIFEST'i kaldırmayı deneyin, böylelikle dağıtımlar yeniden oluşturmaya zorlanacaklardır.

Not: Python 3.x kullanıyorum, bu yüzden bunun 2.x ile çalışıp çalışmadığını bilmiyorum.

+0

Cevabımı yanlış anladın. Bir MANIFEST dosyası oluşturulmasını önermiyorum. "MANIFEST.in", manifest şablon dosyası hakkında konuşuyorum. Bu, otomatik olarak oluşturulan MANIFEST'te bulunanlara _add_ yapmanıza olanak tanır. Tüm Python sürümlerinde 2.6 ve 2.6 dahil olmak üzere bir hata nedeniyle, bir MANIFEST.in dosyasına eklenmedikçe, data_files ve package_data girdileri otomatik olarak oluşturulan MANIFEST'e dahil edilmez. –

+0

@Carl Meyer Ne yaptığınızı veya söylemediğinizi açıklamadım. Ben sadece bu kısımda daha ayrıntılı olan bir cevaba atıfta bulunmak istedim (ki bu benim asıl amacım değildi) Ve genel olarak MANIFEST'i kullandım; Muhtemelen MANIFEST.in yazmalıydım (o zamandan beri değiştirdim.) Cevabını yanlış anladığım için üzgünüm. – Matthew

+0

Ne yazık ki, düzenlenmiş cevabınız basitçe yanlıştır:/distutils, MANIFEST.in sağlayıp sağlamadığınızı size bir MANIFEST oluşturur. MANIFEST.in, oluşturulan MANIFEST dosyasının içeriğine eklemenizi sağlar. –