मैं एक पायथन परियोजना के लिए setup.py फ़ाइल लिख रहा हूं ताकि मैं इसे वितरित कर सकूं। इसका लक्ष्य अंततः एक .egg फ़ाइल बनाना है, लेकिन मैं इसे पहले distutils और नियमित .zip के साथ काम करने की कोशिश कर रहा हूं।मैं इन डेटा फ़ाइलों को पाइथन वितरण में distutils का उपयोग क्यों नहीं कर सकता?
यह ग्रहण Pydev परियोजना है और मेरी फ़ाइल संरचना कुछ इस तरह है:
ProjectName
src
somePackage
module1.py
module2.py
...
config
propsFile1.ini
propsFile2.ini
propsFile3.ini
setup.py
यहाँ मेरी setup.py कोड अब तक बताया गया है:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage'],
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
)
जब मैं इस (sdist के रूप में के साथ चलाने एक कमांड लाइन पैरामीटर), एक .zip फ़ाइल सभी पायथन फ़ाइलों के साथ उत्पन्न होती है - लेकिन कॉन्फ़िगरेशन फ़ाइलें शामिल नहीं हैं। मैंने सोचा था कि यह कोड:
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
इंगित करता है कि उन 3 निर्दिष्ट config फ़ाइलें ज़िप वितरण में एक "config" निर्देशिका में कॉपी किया जाना चाहिए। यह कोड कुछ भी पूरा क्यों नहीं कर रहा है? मैं क्या गलत कर रहा हूं?
(मैं भी config फाइल के रास्तों के साथ प्रयोग करना की कोशिश की है ... लेकिन कुछ भी नहीं मदद करने के लिए लगता है। चाहेंगे अजगर एक त्रुटि फेंक या चेतावनी अगर पथ गलत थी/फ़ाइल नहीं मिला था?)
धन्यवाद। मुझे निम्न त्रुटि मिलती है: 'चेतावनी:' config \ * '' से मेल खाने वाली कोई भी फाइल नहीं मिली। मैंने .. \ config \ * में बदलने की कोशिश की है लेकिन यह किसी भी विचार में मदद नहीं करता है ... कोई विचार? – froadie
'\' और '*' के बीच एक जगह है। इसे हटाने का प्रयास करें? अन्यथा आगे स्लैश का उपयोग करने का प्रयास कर रहा है। मैंने आगे की स्लैश का उपयोग किया है, लेकिन क्योंकि आपने बैकस्लैश का उपयोग किया है, इसलिए मैंने '/' को '\' से बदल दिया है। हालांकि, मैंने पाया है कि विंडोज़ पर वास्तव में कोई समस्या नहीं है/इसका उपयोग नहीं करता है। कुछ भी नहीं, काम करता है, तो बस इसे में फ़ाइल नाम हार्डकोड, की तरह से देखना होगा कि आपने सही रास्ते पर हैं: config शामिल/propsFile1.ini config/propsFile2.ini # आदि ... – Umang
शामिल अंतरिक्ष केवल था एसओ स्वरूपण की वजह से - जब मैंने उन्हें एक साथ रखा तो यह किसी कारण से स्लैश छुपाया। स्लैश को आगे बढ़ाने के लिए बदलना कोई फर्क नहीं पड़ता है ... पायथन स्वचालित रूप से इसे वापस उसी त्रुटि संदेश में परिवर्तित कर देता है। व्यक्तिगत फाइलों पर एक ही त्रुटि प्राप्त करें ... :(कोई सुराग क्या गलत है? क्या यह एक पथ समस्या है? – froadie