2013-01-20 16 views
16

मैं एक अजगर पैकेज बनाने के लिए कोशिश कर रहा हूँ, और मैं इस तरह एक निर्देशिका संरचना है:MANIFEST.in, package_data, और data_files स्पष्टीकरण?

mypkg/ 
├── __init__.py 
├── module1 
│   ├── x.py 
│   ├── y.py 
│   └── z.txt 
└── module2 
    ├── a.py 
    └── b.py 

तब मैं MANIFEST.in में सभी फाइलों को जोड़ा और जब मैं बनाया संग्रह की जाँच करें, यह सभी फाइलों था।

जब मैं python setup.py installdist-packages/mypkg/module1 में करता हूं। मैं केवल पायथन फाइलें देखता हूं और z.txt नहीं।

मैं MANIFEST.in और setup.py दोनों में z.txt है:

setup (
    packages = [ 
     'mypkg', 
     'mypkg.module1', 
     'mypkg.module2', 
    ], 
    package_data = { 
     'mypkg': ['module1/z.txt'] 
    }, 
    include_package_data = True, 
    ... 
) 

मैं भी data_files के रूप में फ़ाइल जोड़ने की कोशिश की लेकिन वह /usr/local में एक निर्देशिका बनाया। मैं इसे स्रोत कोड निर्देशिका में रखना चाहता हूं क्योंकि कोड उस डेटा का उपयोग करता है।

मैंने नीचे सूचीबद्ध पदों को पढ़ा है, लेकिन setup.py install के बाद z.txt को सही स्थान पर रखने का सही तरीका क्या है, इस बारे में भ्रमित हो रहा हूं।

+0

अद्यतन: यह तय हो गया है जब मैं distutils.core के बजाय setuptools उपयोग शुरू कर दिया। मुझे लगता है कि यह distutils के साथ कुछ समस्या थी जब मैनिफेस्ट से सहमत नहीं था, जबकि setuptools कोड में किसी भी बदलाव के बिना काम किया। मैं भविष्य में setuptools का उपयोग करने की सलाह देते हैं। लिंक का उपयोग [यहां] [1]। [1]: http://peak.telecommunity.com/DevCenter/setuptools#developer-s-guide – Sourabh

उत्तर

2

अपडेट: जब मैं distutils.core के बजाय setuptools का उपयोग करना शुरू कर दिया गया तो यह ठीक हो गया। मुझे लगता है कि यह distutils के साथ कुछ समस्या थी जब मैनिफेस्ट से सहमत नहीं था, जबकि setuptools कोड में किसी भी बदलाव के बिना काम किया। मैं भविष्य में setuptools का उपयोग करने की सलाह देते हैं। लिंक का उपयोग here : setup tools- developers guide

11

distutils के बजाय setuptools का उपयोग करें।

+0

हाँ सेटअपtools इसे ठीक करता है। मैंने इस सवाल पर टिप्पणी की क्योंकि मैं स्वयं का जवाब नहीं दे सका। – Sourabh