यदि पैकेज PYPI पर है, तो इसे और इसकी निर्भरता कुछ स्थानीय निर्देशिका में डाउनलोड करें। उदाहरण के लिए
$ mkdir / pypi और& cd / pypi
$ एलएस -ला
-rw-r - r-- 1 पावेल स्टाफ 237954 Apr 19 11:31 फ्लास्क-डब्ल्यूटीएफ-0.6.tar.gz
-rw-r - r-- 1 पावेल स्टाफ 389741 Feb 22 17:10 Jinja2-2.6.tar.gz
-rw-r - r-- 1 पावेल स्टाफ 70305 Apr 11 00:28 MySQL-python-1.2.3.t.t.z
-rw-r - r-- 1 पावेल स्टाफ 2597214 Apr 10 18:26 SQLAlchemy-0.7.6.tar.gz
-rw-r - r-- 1 पावेल स्टाफ 1108056 22 फरवरी 17:10 विर्कजेग-0.8.2.tar.gz
-rw-r - r-- 1 पावेल स्टाफ 488207 Apr 10 18:26 boto-2.3.0.tar.gz
-rw-r - r-- 1 पावेल स्टाफ 490192 अप्रैल 16 12:00 फ्लास्क-0.9-देव -2a6c80a.tar.gz
कुछ पैकेजों को हाथ से समान दिखने वाले टारबॉल में संग्रहीत किया जा सकता है। मैं इसे बहुत कुछ करता हूं जब मुझे कुछ का हाल ही में (कम स्थिर) संस्करण चाहिए। कुछ पैकेज PYPI पर नहीं हैं, इसलिए वही उन पर लागू होता है।
मान लीजिए कि आपके पास ठीक से गठित पायथन एप्लिकेशन है ~/src/myapp
। आपके पास अपनी निर्देशिका में एक या अधिक चीजों का उल्लेख करने वाली सूची ~/src/myapp/setup.py
होगी । इस तरह:install_requires
/pypi
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
यदि आप अभी भी इस पर हैक करते समय सभी आवश्यक निर्भरताओं के साथ अपने ऐप को चलाने में सक्षम होना चाहते हैं, तो आप कुछ इस तरह करेंगे:
$ cd ~ / src / myapp
$ python setup.py --always-unzip --allow-मेजबान = कोई नहीं --find-links = / pypi
इस तरह से आपके ऐप को आपके सोर्स डायरेक्टरी से सीधे निष्पादित किया जाएगा। आप चीजों पर हैक कर सकते हैं, और फिर कुछ भी पुनर्निर्माण के बिना एप्लिकेशन को फिर से चलाएँ।
यदि आप अपने ऐप और इसकी निर्भरता को मौजूदा अजगर वातावरण में स्थापित करना चाहते हैं, तो आप कुछ इस तरह करेंगे:
$ cd ~ / src / myapp
$ easy_install --always-unzip --allow-मेजबान = कोई नहीं-find- लिंक = / pypi।
यदि एक या अधिक निर्भरता /pypi
निर्देशिका में मौजूद नहीं हैं, तो दोनों मामलों में, बिल्ड विफल हो जाएगा । यह इंटरनेट से गायब चीजों को तुरंत स्थापित करने का प्रयास नहीं करेगा।
मैं अत्यधिक आह्वान करने के लिए सलाह देते हैं setup.py develop ...
और easy_install ...
एक सक्रिय भीतर आभासी वातावरण अपने वैश्विक अजगर वातावरण को दूषित कर से बचने के लिए। यह (virtualenv है कि) बहुत जाने के लिए रास्ता है। वैश्विक पायथन वातावरण में कभी भी कुछ भी स्थापित न करें।
यदि आपने जिस मशीन को अपना ऐप बनाया है, उसमें उसी तरह का आर्किटेक्चर है जिस मशीन पर आप उसे तैनात करना चाहते हैं, तो आप पूरी वर्चुअल वातावरण निर्देशिका को टारगेट कर सकते हैं जिसमें आप easy_install
सब कुछ कर सकते हैं। हालांकि टारबॉलिंग से पहले, आपको वर्चुअल एनवायरनमेंट डायरेक्टरी को रीकोसेबल (देखें --relocatable ऑप्शन) बनाना होगा। ध्यान दें: गंतव्य मशीन को समान संस्करण स्थापित करने की आवश्यकता होती है, और आपके एप्लिकेशन में कोई भी C- आधारित निर्भरताएँ भी वहां प्रीइंस्टॉल्ड हो सकती हैं (उदाहरण के लिए यदि आप PIL पर निर्भर हैं , तो libpng, libjpeg, आदि को पूर्वस्थापित होना चाहिए) ।