आप arbritary पथ से मॉड्यूल और संकुल आयात नहीं करते इसके बजाय, अजगर में आप पैकेज और पूर्ण आयात का उपयोग करें। यह सभी भविष्य की समस्याओं से बच जाएगा।
उदाहरण:
बनाने निम्न फ़ाइलें:
MyApp\myapp\__init__.py
MyApp\myapp\utils\__init__.py
MyApp\myapp\utils\charts.py
MyApp\myapp\model\__init__.py
MyApp\myapp\view\__init__.py
MyApp\myapp\controller\__init__.py
MyApp\run.py
MyApp\setup.py
MyApp\README
फ़ाइलों को छोड़कर खाली होना चाहिए:
MyApp\myapp\utils\charts.py:
class GChartWrapper(object):
def __init__(self):
print "DEBUG: An instance of GChartWrapper is being created!"
MyApp\myapp\view\__init__.py:
from myapp.utils.charts import GChartWrapper
def start():
c = GChartWrapper() # creating instance of the class
MyApp\run.py:
from myapp.view import start
start()
बस इतना ही! जब आप अपना एंट्री पॉइंट चलाते हैं (run.py
) यह दृश्य पर एक फ़ंक्शन कॉल करता है, और यह GChartWrapper क्लास का एक उदाहरण बनाता है। इस ढांचे का उपयोग करके आप कहीं भी कुछ भी आयात कर सकते हैं और इसका इस्तेमाल कर सकते हैं।
पूरक के लिए, MyApp\setup.py
में आप MyApp \ myapp पैकेज के लिए एक इंस्टॉलेशन प्रोग्राम लिखते हैं। इसे लिखने के लिए distutils का उपयोग करें:
from distutils.core import setup
setup(name='MyApp',
version='1.0',
description='My Beautiful Application',
author='Martin',
author_email='[email protected]',
url='http://stackoverflow.com/questions/1003843/',
packages=['myapp'],
scripts=['run.py']
)
यह पर्याप्त है। अब जब लोग MyApp फ़ोल्डर डाउनलोड करते हैं, तो वे इसे setup.py का उपयोग करके इंस्टॉल कर सकते हैं और run.py का उपयोग कर इसे चला सकते हैं। Distutils विंडोज़ स्थापित करने योग्य सहित कई प्रारूपों में संकुल उत्पन्न कर सकते हैं .EXE
यह पायथन पैकेज/अनुप्रयोगों को वितरित करने का मानक तरीका है।
sudo pip install GChartWrapper==0.9
यह तो स्वत: ही आपके PYTHONPATH में जोड़ दिया जाएगा और फिर आप अपने/MyApp/utils से निकाल सकते हैं:
मैं ऐप इंजन पर GChartWrapper का उपयोग करने की कोशिश कर रहा हूं, इसलिए मैं वास्तव में सेटअप नहीं चला सकता। धन्यवाद! :) – Martin