निम्नलिखित ओपी की समस्या को हल नहीं करता है, लेकिन शीर्षक और त्रुटि बिल्कुल वही है जो मैंने सामना किया था।
यदि आपकी परियोजना में एक setup.py
स्क्रिप्ट है, तो आप उस पैकेज को स्थापित कर सकते हैं, जिसमें आप python3 -m pip install -e .
या python3 setup.py install
उसके साथ हैं python3 setup.py develop
, और यह पैकेज स्थापित किया जाएगा, लेकिन फिर भी संपादन योग्य है (इसलिए पैकेज को आयात करते समय कोड में परिवर्तन देखा जाएगा)। यदि यह एक नहीं है setup.py
, तो इसका मतलब बनाओ ।
वैसे भी, ओपी चेहरे की समस्या अब मौजूद नहीं है?
फ़ाइल one.py
:
def function():
print("output")
फ़ाइल two.py
:
import one
one.function()
chmod +x two.py
./two.py
Command line output: output
अन्य समाधान 'गंदे' लगते हैं
2 परीक्षण फ़ाइलों के साथ ओपी के मामले में, उन्हें काम करने के लिए संशोधित करना शायद ठीक है। हालांकि, अन्य वास्तविक परिदृश्यों में, अन्य उत्तरों में सूचीबद्ध तरीकों की सिफारिश नहीं की जाती है। उन्हें आपको अजगर कोड को संशोधित करने या अपने लचीलेपन (विशिष्ट निर्देशिका से अजगर फ़ाइल को चलाने) को प्रतिबंधित करने और आम तौर पर झुंझलाहट की आवश्यकता होती है। क्या होगा यदि आपने अभी-अभी किसी प्रोजेक्ट का क्लोन बनाया है, और ऐसा होता है? यह शायद पहले से ही अन्य लोगों के लिए काम करता है, और कोड परिवर्तन करना अनावश्यक है। चुना हुआ उत्तर यह भी चाहता है कि लोग इसे बनाने के लिए एक विशिष्ट फ़ोल्डर से स्क्रिप्ट चलाएं। यह लंबे समय तक झुंझलाहट का स्रोत हो सकता है, जो कभी अच्छा नहीं होता है। यह आपके विशिष्ट अजगर फ़ोल्डर को PATH में जोड़ने का भी सुझाव देता है (अजगर या कमांड लाइन के माध्यम से किया जा सकता है)। फिर, क्या होता है यदि आप कुछ महीनों में फ़ोल्डर का नाम बदलते हैं या स्थानांतरित करते हैं? आपको इस पृष्ठ को फिर से लिखना होगा, और अंत में आपको पता चलता है कि आपको रास्ता निर्धारित करने की आवश्यकता है (और आपने कुछ महीने पहले ऐसा किया था), और यह कि आपको एक पथ को अपडेट करने की आवश्यकता है (सुनिश्चित करें कि आप sys.path का उपयोग कर सकते हैं और प्रोग्रामेटिक रूप से इसे सेट कर सकते हैं, लेकिन यह अभी भी परतदार हो सकता है )। बड़ी झुंझलाहट के कई स्रोत।
import sys; sys.path