मेरे पास एक प्रोजेक्ट है जिसमें से मैं दो अलग पायथन पैकेज उत्पन्न करना चाहता हूं। मैं पीपी का उपयोग कर इन पैकेजों को स्थापित करना चाहता हूं।एकाधिक setup.py स्क्रिप्ट का उपयोग कर एकाधिक परियोजनाएं?
यह पिछले प्रश्न के उत्तर में, सामान्य सिफारिश दो setup.py
स्क्रिप्ट लिखने के लिए गया था: Multiple projects from one setup.py?
तो मैं इस तरह एक संरचना की कोशिश की:
/myproject
setup_foo.py
setup_bar.py
/mypackage1
/mypackage2
...
setup_foo.py
में मैं script_name
पैरामीटर सेट:
from distutils.core import setup
setup(name = 'foo',
version = '2.0.0',
...,
script_name = 'setup_foo.py')
(मैंने पैरामीटर के बिना नीचे भी कोशिश की - वें के अनुसार ई प्रलेखन यह चूक sys.argv को [0])
मैं
python setup_foo.py sdist
का उपयोग कर foo-2.0.0.tar.gz
बनाने लेकिन जब मैं pip install foo-2.0.0.tar.gz
, मैं इस तरह एक त्रुटि प्राप्त:
Unpacking .../foo-2.0.0.tar.gz
Running setup.py egg_info for package from file:///...foo-2.0.0.tar.gz
Traceback (most recent call last):
File "<string>", line 14, in <module>
IOError: [Errno 2] No such file or directory: '/var/folders/wj/jv7n2pmn5d1g1jjx6khc8bx80000gn/T/pip-v3dujq-build/setup.py'
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 14, in <module>
IOError: [Errno 2] No such file or directory:
'/var/folders/wj/jv7n2pmn5d1g1jjx6khc8bx80000gn/T/pip-v3dujq-build/setup.py'
मैं कुछ याद आ रही है का उपयोग करने के लिए pip
को निर्देश देने का तरीका? या मुझे अलग-अलग निर्देशिकाओं में 'setup.py' नामक दो स्क्रिप्ट्स रखनी चाहिए?
आपके उत्तर के लिए धन्यवाद! मैंने दिखाए गए ढांचे को चुनने के मेरे कारणों के बारे में लगभग सही हैं; मैं उनमें से दो था। सबसे पहले, मैं PyDev/ग्रहण का उपयोग कर रहा हूं और यदि संभव हो तो अंतर-परियोजना निर्भरताओं से बचना चाहता था। दूसरा, मेरे दो वितरण परियोजना में लगभग सभी पैकेज साझा करते हैं - वे मुख्य रूप से भिन्न होते हैं जिसमें कमांड लाइन उपकरण शामिल होते हैं - इसलिए उन्हें दो या तीन अलग-अलग परियोजनाओं में विभाजित करना थोड़ा अधिक लग रहा था। यदि एक प्रोजेक्ट में दो वितरण गलत तरीके से सेटअप करते हैं, तो मैं केवल एक वितरण का चयन कर सकता हूं और सभी सर्वरों पर सभी स्क्रिप्ट को तैनात करने के लिए स्वीकार कर सकता हूं। –
कुछ प्रेरणा के लिए http://code.google.com/p/pyroscope/source/browse/trunk/update-to-head.sh देखें। यदि आप वर्चुअलएन्व (हमेशा एक अच्छा विचार, यहां तक कि एक उत्पादन मशीन पर) स्थापित करते हैं, तो आप टूल स्टब्स को चुनिंदा सिमलिंक कर सकते हैं, और इस प्रकार एक चयनित सबसेट प्रकाशित कर सकते हैं ("ln -nfs $ (grep -l 'entry_point। * Pyrocore देखें == '$ पीडब्ल्यूडी/बिन/*) $ {BIN_DIR: - ~/bin}/"कमांड)। – pyroscope
चालाक! हां, यह स्क्रिप्ट के सबसेट छुपा/प्रकाशित करने का एक आसान तरीका है। –