अपने लक्ष्य की मेरी समझ सामान्यीकरण के लिए, आपको import custom_package_name
कोई फर्क नहीं पड़ता का उपयोग कर जहां से अजगर और चाहे आपकी अजगर स्क्रिप्ट स्थित है बुला रहे हैं कस्टम संकुल आयात करने में सक्षम होना चाहता हूँ।
कई उत्तरों का उल्लेख है जो मैं वर्णन करने जा रहा हूं, लेकिन मुझे लगता है कि अधिकांश उत्तर पिछले ज्ञान को मानते हैं। मैं जितना स्पष्ट हो उतना स्पष्ट होने की कोशिश करूंगा।
कस्टम पैकेज को import
कथन के माध्यम से आयात करने की अनुमति देने के लक्ष्य को प्राप्त करने के लक्ष्य के लिए, उन्हें पथ के माध्यम से पाइथन का उपयोग करने के पथ के माध्यम से कहीं भी खोजने योग्य होना चाहिए। पाइथन वास्तव में कई पथों का उपयोग करता है, लेकिन हम sys.prefix
(आपके पायथन दुभाषिया में) /lib/pythonX.Y/site-packages
(या lib/site-packages
के साथ यदि आप विंडोज़ का उपयोग कर रहे हैं) के आउटपुट को जोड़कर केवल उस पर ध्यान केंद्रित करेंगे, जहां X.Y आपका पायथन संस्करण है।
Concretely, चलाकर रास्ता है कि अपने अजगर का उपयोग करता है लगता है:
import sys
your_path = sys.prefix + '/lib/pythonX.Y/site-packages'
print(your_path)
इस पथ /usr/local/lib/python3.5/site-packages
कुछ इस प्रकार दिखाई आप अजगर 3.5 उपयोग कर रहे हैं चाहिए, लेकिन यह आपके सेटअप के आधार पर बहुत अलग हो सकता है।
पायथन इस पैकेज (और कुछ अन्य) का उपयोग उन पैकेजों को ढूंढने के लिए करता है जिन्हें आप आयात करना चाहते हैं। तो आप अपने कस्टम पैकेज को /usr/local/lib/python3.5/site-packages
फ़ोल्डर में डाल सकते हैं। init फ़ोल्डर में .py फ़ाइल जोड़ने के लिए मत भूलना।
टर्मिनल प्रकार में फिर से ठोस होने के लिए,:
cd your_path
cp path_to_custom_package/custom_package ./
अब आप की तरह आप अगर पैकेज एक ही निर्देशिका (यानी import package.subpackage
प्रत्येक सबपैकेज फ़ाइल के लिए में स्थित था होता सब कुछ अपने कस्टम पैकेज आयात करने के लिए सक्षम होना चाहिए आपके पैकेज में काम करना चाहिए)।
स्रोत
2018-01-29 00:35:07
और परिणाम क्या था? क्या आप एमएनएन जवाब स्वीकार करने की योजना बना रहे हैं? –
कोड का प्रयास करने के बाद मैं एक जवाब स्वीकार करूंगा, जो मैं कुछ हफ्तों तक नहीं करूँगा। मुझे कोई विशेष भीड़ नहीं दिख रही है। – DavidM
क्या कोड का प्रयास किया? जैसा कि मैंने एक उदाहरण के साथ इंगित करने का प्रयास किया है, और जैसा कि एक या दो अन्य लोगों ने भी उल्लेख किया है, जो आपने कहा है, वह सिर्फ काम करना चाहिए और केवल काम करने के लिए दस्तावेज किया जाना चाहिए। "कोड का प्रयास करने" के बजाय, हमें बताएं [जैसा कि मैंने सुझाव दिया है] प्राथमिक जानकारी जो आपके प्रश्न (प्लेटफ़ॉर्म, पायथन संस्करण, पूर्ण ट्रेसबैक और त्रुटि संदेश) के साथ शामिल की जानी चाहिए और साथ ही मैंने प्राथमिक डीबगिंग भी सुझाई है ... आपके समय के कुछ मिनट; आपको जवाब देने के लिए छह लोग "पहुंचे"। –