यहां बहुत कुछ चल रहा है। आपको पाइथन पैकेज और मॉड्यूल प्रबंधन http://docs.python.org/2/tutorial/modules.html#packages के बारे में पढ़ना चाहिए, लेकिन मूल विचार यह है कि फ़ाइलएक्स को यह जानने की आवश्यकता है कि फ़ाइल 1 और फ़ाइल 2 उनका उपयोग करने के लिए कहां हैं।
फ़ोल्डर को किसी पैकेज में बदलने के लिए, इसमें केवल __init__.py
फ़ाइल शामिल होना आवश्यक है। क्या मैं तुम क्या सुझाव है (एक टर्मिनल में)
$ touch Foo/__init__.py
$ touch Foo/Project1/__init__.py
(आप यूनिक्स/लिनक्स का उपयोग कर रहे कल्पना करते हुए) है।
फिर किसी भी तरह, फ़ाइलएक्स को यह जानने की जरूरत है कि Foo
पैकेज कहां है। आप sys.path.append(PATH)
पर कॉल कर सकते हैं जहां PATH Foo का स्थान है।
अंततः fileX के अंदर।py आप
import sys
sys.path.append(PATH) #replace PATH with the path to Foo
from Foo.Project1 import file1
#use its functions
file1.function_name(argument)
होगा यदि आप वास्तव में सिर्फ पूर्ववर्ती बिना function_name
कहना file1.
आप from Foo.Project1.file1 import *
कह कर अपने कार्यों के सभी आयात कर सकते हैं चाहता हूँ लेकिन कृपया ध्यान दें कि from module import *
अत्यधिक के रूप में यह घुलमिल पर सिकोड़ी है नाम और कोड कम पठनीय और समझने योग्य
स्रोत
2013-01-24 19:40:14
प्रोजेक्ट 1 और प्रोजेक्ट 2 दोनों मेरे सर्वर पर बैठे दोनों संस्करणों के साथ नियंत्रित हैं। यदि प्रोजेक्ट 1 अपडेट किया गया है, तो मुझे प्रोजेक्ट 2 पर हर बार स्थापित पैकेज अपडेट करना होगा। लेकिन, अगर मैं अपने sys.path में हेरफेर करता हूं, तो प्रोजेक्ट 1 पर एक गिट खींचने से मेरा मॉड्यूल अपडेट हो जाएगा। क्या मैं कुछ सुगंधित कर रहा हूँ? या यह ठीक है! धन्यवाद! – Abhishek