एक अजगर पैकेज डाउनलोड करने का सबसे अच्छा तरीका क्या है और दूसरी मशीन पर ऑफलाइन इंस्टॉलेशन के लिए पीपीआई से इसकी निर्भरता क्या है? क्या पीपी या easy_install के साथ ऐसा करने का कोई आसान तरीका है? मैं एक फ्रीबीएसडी बॉक्स पर अनुरोध पुस्तकालय स्थापित करने की कोशिश कर रहा हूं जो इंटरनेट से कनेक्ट नहीं है।पायथन पैकेज ऑफ़लाइन इंस्टॉलेशन
उत्तर
यदि पैकेज पीवाईपीआई पर है, तो इसे और इसकी निर्भरताओं को कुछ स्थानीय निर्देशिका में डाउनलोड करें। ईजी।
$ mkdir /pypi && cd /pypi $ ls -la -rw-r--r-- 1 pavel staff 237954 Apr 19 11:31 Flask-WTF-0.6.tar.gz -rw-r--r-- 1 pavel staff 389741 Feb 22 17:10 Jinja2-2.6.tar.gz -rw-r--r-- 1 pavel staff 70305 Apr 11 00:28 MySQL-python-1.2.3.tar.gz -rw-r--r-- 1 pavel staff 2597214 Apr 10 18:26 SQLAlchemy-0.7.6.tar.gz -rw-r--r-- 1 pavel staff 1108056 Feb 22 17:10 Werkzeug-0.8.2.tar.gz -rw-r--r-- 1 pavel staff 488207 Apr 10 18:26 boto-2.3.0.tar.gz -rw-r--r-- 1 pavel staff 490192 Apr 16 12:00 flask-0.9-dev-2a6c80a.tar.gz
कुछ पैकेजों को हाथ से इसी तरह के दिखने वाले टैरबॉल में संग्रहीत किया जाना पड़ सकता है। जब मैं कुछ और हालिया (कम स्थिर) संस्करण चाहता हूं तो मैं इसे बहुत कुछ करता हूं। कुछ पैकेज पीवाईपीआई पर नहीं हैं, इसलिए उन पर भी लागू होता है।
मान लीजिए कि आपके पास ~/src/myapp
में एक उचित ढंग से गठित पायथन एप्लिकेशन है। ~/src/myapp/setup.py
में install_requires
सूची होगी जो आपके /pypi
निर्देशिका में आपके एक या अधिक चीज़ों का उल्लेख करती है। इसलिए जैसा:
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
आप सभी आवश्यक निर्भरता के साथ अपने अनुप्रयोग चलाने के लिए सक्षम होने के लिए चाहते हैं, जबकि अभी भी उस पर हैकिंग, आप कुछ इस तरह करेंगे:
$ cd ~/src/myapp $ python setup.py develop --always-unzip --allow-hosts=None --find-links=/pypi
यह आपके ऐप रास्ता सीधे आपकी स्रोत निर्देशिका से निष्पादित किया जाएगा। आप चीजों पर हैक कर सकते हैं, और फिर कुछ भी पुनर्निर्माण किए बिना ऐप को दोबारा शुरू कर सकते हैं।
आप अपने अनुप्रयोग और वर्तमान अजगर वातावरण में अपनी निर्भरता को स्थापित करना चाहते हैं, तो आप कुछ इस तरह करेंगे:
$ cd ~/src/myapp $ easy_install --always-unzip --allow-hosts=None --find-links=/pypi .
दोनों मामलों में, यदि एक या अधिक निर्भरता 'नहीं कर रहे निर्माण असफल हो जायेगी टी /pypi
निर्देशिका में मौजूद है। यह इंटरनेट से लापता चीजों को निश्चित रूप से स्थापित करने का प्रयास नहीं करेगा।
मैं अपने वैश्विक पायथन पर्यावरण को दूषित करने से बचने के लिए सक्रिय virtual environment के भीतर setup.py develop ...
और easy_install ...
को आमंत्रित करने की अत्यधिक अनुशंसा करता हूं। यह है (वर्चुअलएन्व जो है) जाने का रास्ता बहुत अधिक है। ग्लोबल पायथन पर्यावरण में कुछ भी इंस्टॉल न करें।
यदि आपने जिस मशीन को अपना ऐप बनाया है, उसी मशीन के समान मशीन है जिस पर आप इसे तैनात करना चाहते हैं, तो आप बस पूरे वर्चुअल पर्यावरण निर्देशिका को टैरबॉल कर सकते हैं जिसमें आप easy_install
-सब कुछ कर सकते हैं। हालांकि टैरबॉलिंग से ठीक पहले, आपको वर्चुअल पर्यावरण निर्देशिका को स्थानांतरित करना होगा (--relocatable विकल्प देखें)। नोट: गंतव्य मशीन को पाइथन के समान संस्करण की आवश्यकता होती है, और आपके ऐप को भी किसी भी सी-आधारित निर्भरताओं को पहले से इंस्टॉल किया जाना चाहिए (उदाहरण के लिए कहें कि आप PIL पर निर्भर हैं, तो libpng, libjpeg, आदि होना चाहिए पूर्व-स्थापित)।
'--allow-hosts = none' के बजाय आप स्विच '--no-index' – romor
स्विच का उपयोग कर सकते हैं क्या आप कृपया सही ढंग से गठित पायथन एप्लिकेशन कैसे बनाएं, विस्तारित कर सकते हैं? –
@ प्रभाजोतराई कृपया https://packaging.python.org/distributing/ –
tarball डाउनलोड करें, इसे अपने फ्रीबीएसडी मशीन में स्थानांतरित करें और इसे निकालें, बाद में python setup.py install
चलाएं और आप कर चुके हैं!
संपादित करें: बस उस पर जोड़ने के लिए, आप अब पाइप के साथ टैरबॉल स्थापित कर सकते हैं।
सभी निर्भरताओं के बारे में क्या? उन्हें हल करने का सबसे अच्छा तरीका क्या है? क्या मुझे निर्भरता को मैन्युअल रूप से स्थापित करने की आवश्यकता है? –
हां, यह दुर्भाग्य से एकमात्र तरीका है जिसे मैं जानता हूं। – dav1d
मैं -d
(या --download
) विकल्प pip install
पर विकल्प का उपयोग करता हूं, जो पीईपीआई से एसडीआईस्ट टैरबॉल डाउनलोड करने की प्रक्रिया को बहुत आसान बनाता है।उदाहरण के लिए, pip install --download /path/to/some/dir celery
अजवाइन के लिए एसडीआईटी टैरबॉल और इसकी सभी निर्भरताओं को /path/to/some/dir
(लेकिन उन्हें इंस्टॉल नहीं करेगा) डाउनलोड करेगा। फिर आप नेटवर्क डाउनलोड किए बिना, डाउनलोड किए गए sdists का उपयोग करके अजवाइन स्थापित करने के लिए pip install --no-index --find-links /path/to/some/dir/ celery
का उपयोग कर सकते हैं।
एक ही प्रक्रिया काम करती है यदि आप को -r requirements.txt
के साथ दोनों आदेशों में प्रतिस्थापित करते हैं, जहां require.txt एक पीपी आवश्यकता फ़ाइल है जो आप चाहते हैं कि सभी संकुल सूचीबद्ध करें (और वैकल्पिक रूप से आप चाहते हैं संस्करण)।
अद्यतन
प्रतिवाद: पिप --download पदावनत किया गया है स्थापित करने और भविष्य में निकाला हो जाएगा। पिप में अब download कमांड है जो इसके बजाय होना चाहिए।
आदेश इस तरह है:
pip download -r requirements.txt
python3 के लिए:
pip3 download -r requirements.txt
समस्या का संदर्भ लें, यह निर्भर करता है कि निर्भरताओं में अन्य निर्भरताएं हो सकती हैं और वे डाउनलोड नहीं की जाएंगी। – vikki
[सांप टोकरी] (https://github.com/prezi/snakebasket) (पीआईपी के शीर्ष पर बनाया गया) निर्भरता की निर्भरताओं को भी डाउनलोड करेगा। – vikki
@vikki सच नहीं है, "पीआईपी इंस्टॉल - डाउनलोड" भी निर्भरता डाउनलोड करता है, इसलिए उपरोक्त आदेश सही ढंग से काम करेंगे भले ही आपकी आवश्यकताओं में अतिरिक्त निर्भरताएं हों। सांप टोकरी अन्य उपयोगी चीजें कर सकती है (इसे कभी भी इस्तेमाल नहीं किया जाता है), लेकिन उस कारण के लिए निश्चित रूप से इसकी आवश्यकता नहीं है। –
पिप के लिए 8.1.2 आप pip download -r requ.txt
अपनी स्थानीय मशीन पर संकुल डाउनलोड करने के लिए उपयोग कर सकते हैं।
ऑफलाइन पायथन। WHL साथ
pip install virtualenv --user
या ऑफलाइन: ऐसा करने के लिए मैं पिप के साथ virtualenv ऑनलाइन virtualenv (पृथक अजगर पर्यावरण)
1) स्थापित का उपयोग करें, इस link के लिए जाने के पिछले संस्करण (.whl या टार डाउनलोड करें। GZ) और स्थापित है कि इस आदेश के साथ:
pip install virtualenv-15.1.0-py2.py3-none-any.whl --user
--user
का उपयोग करके आप sudo pip…
उपयोग करने की आवश्यकता नहीं है।
2) का उपयोग virtualenv
ऑनलाइन मशीन परटर्मिनल cd
के साथ एक निर्देशिका का चयन करें और इस कोड को चलाएँ:
python -m virtualenv myenv
cd myenv
source bin/activate
pip install Flask
सभी पैकेज स्थापित करने के बाद
, आप एक requirements.txt
इसलिए उत्पन्न करने के लिए अपने virtualenv है, जबकि राशि सक्रिय,
pip freeze > requirements.txt
नया टर्मिनल खोलें औरजैसे अन्य एनवी बनाएं।
python -m virtualenv myenv2
cd myenv2
source bin/activate
cd -
ls
अब आप अपने ऑफ़लाइन फ़ोल्डर जहाँ आपके requirements.txt
और tranferred_packages
फ़ोल्डर वहाँ में हैं करने के लिए जा सकते हैं। निम्नलिखित कोड के साथ संकुल डाउनलोड करें और उन सभी को tranferred_packages
फ़ोल्डर में डाल दें।
pip download -r requirements.txt
ऑफ़लाइन कंप्यूटर के लिए अपनी ऑफ़लाइन फ़ोल्डर ले और फिर
python -m virtualenv myenv2
cd myenv2
source bin/activate
cd -
cd offline
pip install --no-index --find-links="./tranferred_packages" -r requirements.txt
क्या में फ़ोल्डर ऑफ़लाइन [requirements.txt, tranferred_packages है {कुप्पी के 0.10.1.tar.gz, ...} ] अपने पैकेज
pip list
नोट के
जांच सूची: के रूप में हम 2017 में हैं यह अजगर 3. यो उपयोग करने के लिए बेहतर है आप इस कमांड के साथ पायथन 3 वर्चुअलएनवी बना सकते हैं।
virtualenv -p python3 envname
यहां कुछ गुम या "obfuscated" दिखाई देने लगते हैं, मैं एक 'निष्क्रिय' और फिर 'पीपी फ्रीज' देखने की उम्मीद करता हूं ... सीडी ऑफ़लाइन और ./tranferred_packages कहीं से नहीं दिखाई देते हैं - स्पष्ट रूप से इसे एक सफाई की आवश्यकता है? – Hannu
शायद, लेकिन आपको 'मैं एक संक्षिप्त पोस्ट चाहता था' पर विचार करना चाहिए, 'यह प्रक्रिया जटिल थी और मैं हर कदम (जो केवल यूट्यूब में संभव है) नहीं लिख सका। – cyera
wheel
संकलित संकुल का उपयोग करना।
बंडल अप:
$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ pip wheel -r requirements.txt --wheel-dir=$tempdir
$ cwd=`pwd`
$ (cd "$tempdir"; tar -cjvf "$cwd/bundled.tar.bz2" *)
प्रतिलिपि टारबॉल और स्थापित:
$ tempdir=$(mktemp -d /tmp/wheelhouse-XXXXX)
$ (cd $tempdir; tar -xvf /path/to/bundled.tar.bz2)
$ pip install --force-reinstall --ignore-installed --upgrade --no-index --no-deps $tempdir/*
नोट wheel
द्विआधारी संकुल मशीनों के लिए नहीं हैं।
अधिक रेफरी। यहां: https://pip.pypa.io/en/stable/user_guide/#installation-bundles
मुझे पाइथन 3.6 के साथ मशीन पर बंडल करने और पायथन 3.5 के साथ दूसरे पर निकालने के साथ समस्याएं थीं: "_
- 1. पाइथन डुप्लिकेट पायथन इंस्टॉलेशन
- 2. सीएमके-सीपीएक्स पैकेज इंस्टॉलेशन पथ दुःस्वप्न
- 3. पायथन पैकेज?
- 4. मेरा पायथन पैकेज प्रारंभ मेनू
- 5. साइगविन इंस्टॉलेशन
- 6. पायथन पायऑडियो इंस्टॉलेशन समस्याएं (पोर्टऑडियो के साथ)
- 7. ऑफ़लाइन बैकबोन.जेएस ऑफ़लाइन
- 8. विंडोज़ पर साइकोप इंस्टॉलेशन
- 9. ऑफ़लाइन
- 10. ऑफ़लाइन
- 11. पीईपीआई पैकेज के लिए इंस्टॉलेशन आंकड़ों की संख्या?
- 12. पैकेज libsndfile-dev में कोई इंस्टॉलेशन उम्मीदवार नहीं है
- 13. पायथन पैकेज में स्क्रिप्ट
- 14. एक पायथन पैकेज
- 15. एक पायथन पैकेज
- 16. सिगविन पायथन 2.7 पैकेज
- 17. पायथन पैकेज बाहरी निर्भरता
- 18. टेस्ट और पायथन पैकेज संरचना
- 19. पायथन: युक्त पैकेज आयात करें
- 20. पायथन: पैकेज में 'निजी' मॉड्यूल
- 21. लिस्टिंग स्थापित पायथन साइट-पैकेज?
- 22. पायथन-पीप यम पैकेज पाइप
- 23. क्लिकऑन इंस्टॉलेशन
- 24. ट्रिडियन इंस्टॉलेशन
- 25. मैं सिगविन का ऑफ़लाइन इंस्टॉलर कहां डाउनलोड कर सकता हूं?
- 26. ऑफ़लाइन उपयोग
- 27. ऑफ़लाइन कैश
- 28. पायथन नम्पी/पांडस इंस्टॉलेशन को कैसे ठीक करें?
- 29. पीआईसी का उपयोग कर विशिष्ट निर्देशिका में वीसीएस से पायथन पैकेज के संपादन योग्य इंस्टॉलेशन को कैसे बनाया जाए?
- 30. एमएसआई पैकेज
संबंधित: [स्थानीय निर्देशिका से require.txt के अनुसार संकुल को कैसे पाइप करें?] (http://stackoverflow.com/q/7225900/95735) –