वितरित करने के साथ पैकेजिंग संसाधन मैं एक पायथन अंडे विकसित कर रहा हूं जिसमें कई .txt निर्भरताएं हैं (वे अंडे द्वारा फाइलें उत्पन्न करने के लिए उपयोग किए जाने वाले टेम्पलेट्स हैं), और मैं उन निर्भरताओं को site-packages
पर कॉपी करने के लिए संघर्ष कर रहा हूं setup.py install
। distribute
documentation ...setuptools/वितरण
अपने पैकेज की फ़ाइल के अनुसार:
setup.py
package
|--- __init__.py
|--- main.py
|--- binary (calls main.py with pkg_resources.load_entry_point)
|--- templates
|--file1.txt
|--file2.txt
setup.py में:
setup(
[...]
eager_resources = ['templates/file1.txt', 'templates/file2.txt']
)
अपने पैकेज के भीतर:
from pkg_resources import resource_string
tpl = resource_string(__name__, 'templates/file1.txt')
... कॉन्फ़िगरेशन और फाइल सिस्टम के इस संयोजन का परिणाम file1.txt
और file2.txt
pkg_resources.resource_string
के माध्यम से उपलब्ध होना चाहिए। दुर्भाग्यवश, setup.py install
के दौरान उन्हें site-packages
पर कॉपी नहीं किया जा रहा है। मैं क्या खो रहा हूँ?
धन्यवाद!
उत्कृष्ट, सहायता के लिए धन्यवाद। क्या आप "डेटा फाइल" और "संसाधनों" के बीच के अंतर को स्पष्ट करने के बारे में सोचेंगे, जैसा कि आपने सेटअप सेटअप दस्तावेज़ों द्वारा परिभाषित किया है? मैं संसाधनों के लिए निर्देशों का पालन कर रहा था, लेकिन वे गुणात्मक रूप से अलग दिखते हैं। धन्यवाद! –
ठीक है, आपका सवाल पहली बार था जब मैंने कभी "संसाधन" भर दिया है, इसलिए मैं भी उत्सुक हूं कि वे क्या हैं। लेकिन डेटा फाइलें निश्चित रूप से टेम्पलेट्स जैसी चीजों के लिए जाने का तरीका हैं। – pcardune
ध्यान दें कि आपको zip_safe = गलत का उपयोग करने की आवश्यकता नहीं है। इसके बजाय, pkg_resources.resource_stream ('packagename', 'templates/file1.txt') का उपयोग करें। पढ़ें() और setuptools आपके लिए फाइल सिस्टम या ज़िपित अंडे से स्ट्रीम प्राप्त करेंगे। –