स्थानीय निर्देशिका से आवश्यकताओं के अनुसार पाइप का उपयोग करके पैकेज कैसे स्थापित करें।


1082

यहाँ समस्या है

मेरी एक आवश्यकताएँ हैं।

BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...

मेरे पास एक स्थानीय संग्रह निर्देशिका है जिसमें सभी पैकेज + अन्य हैं।

मैं के साथ एक नया virtualenv बनाया है

bin/virtualenv testing

इसे सक्रिय करने पर, मैंने स्थानीय संग्रह निर्देशिका से आवश्यकताओं के अनुसार पैकेजों को स्थापित करने की कोशिश की।

source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/

मुझे कुछ आउटपुट मिले जिससे लगता है कि इंस्टॉलेशन ठीक है

Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
  Running setup.py egg_info for package Fabric
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
  Running setup.py egg_info for package South
....

लेकिन बाद में पता चला कि पैकेज में से कोई भी ठीक से स्थापित नहीं है। मैं पैकेज को आयात नहीं कर सकता, और मेरे virtualenv की साइट-संकुल निर्देशिका में कोई भी नहीं मिला है। तो क्या गलत हुआ?


4
क्या आपने --no-indexइसका उपयोग करने की कोशिश की है ताकि यह PyPI को भी न देख पाए?
ह्यूगो तवरेज

2
आपने त्रुटि संदेश छीन लिया है। यह आम तौर पर नीचे के पास है।
बकोरिया

आप पैकेज नामों के बजाय फ़ाइल पथों का उपयोग कर सकते हैं, इसका मतलब है कि आपको आवश्यकताओं को बदलना होगा। फ़ाइल को बदलना होगा, लेकिन पाइप स्थापित कमांड को समान रखें।
हींग

9
सबसे उलट जवाब (माइक लियन्स एक) भी सवाल का जवाब नहीं देता है । क्या आप कृपया कोडे के उत्तर को स्वीकार कर सकते हैं जो सही है?
पिओट्र डोब्रोगोस्ट

2
कोई और नहीं जुड़ा, लेकिन pip.pypa.io/en/stable/user_guide/#requirements-files
MrMesees

जवाबों:


785

यह मेरे लिए काम करता है:

$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages

--no-index- पैकेज इंडेक्स को नजरअंदाज करें (केवल --find-linksइसके बजाय URL को देख रहे हैं)।

-f, --find-links <URL>- यदि कोई URL या html फ़ाइल में पथ है, तो अभिलेखागार के लिंक के लिए पार्स करें। यदि कोई स्थानीय पथ या file://URL जो एक निर्देशिका है, तो निर्देशिका लिस्टिंग में अभिलेखागार देखें।


7
--no-indexकमांड पाइप की मदद से जानकारी --no-index इग्नोर पैकेज इंडेक्स स्थापित करें (केवल --find-linksइसके बजाय URL देख रहे हैं)। कमांड पाइप की मदद से जानकारी --find-linksस्थापित करें -f , --find-links <url>यदि कोई html फ़ाइल के लिए एक यूआरएल या पथ है, तो अभिलेखागार के लिंक के लिए पार्स करें। यदि कोई स्थानीय पथ या फ़ाइल: // url वह निर्देशिका है, तो निर्देशिका सूची में अभिलेखागार देखें।
18

1
//, यह एक बहुत ही सुंदर समाधान हो सकता है, विशेष रूप से विक्रेताओं के साथ शाश्वत संघर्ष को देखते हुए: bitprophet.org/blog/2012/06/07/on-vendorizing
नाथन बासनी

इसके साथ एक सावधानी यह है कि आप pip install <some_module>उपयोग किए बिना हो सकते हैं requirements.txtलेकिन यह अपडेट नहीं होगा requirements.txt। एक विकल्प एक डॉकटर को अपडेट कर रहा हो सकता है कि यह उन सभी पाइप इंस्टॉल कमांड को सूचीबद्ध करता है जो निर्भरता स्थापित करने के लिए चलाए जाते हैं।
एम्परसेंड्स

मैं python -m pip install -r requirements.txtजब सक्रिय venv पर्यावरण के अंदर यह कोशिश की । चीजें सुचारू रूप से स्थापित हैं, लेकिन जब मैं पाइप सूची करता हूं तो यह उस पैकेज को नहीं दिखाता है, जब मैं सक्रिय वेनव में हूं या फिर वेनेट को निष्क्रिय करने के बाद भी। भी उस पैकेज का उपयोग करने में सक्षम नहीं है। पता नहीं यहाँ क्या गलत है
श्रेया मेहता

क्या आप सुनिश्चित हैं कि pythonसक्रिय पर्यावरण के अजगर निष्पादन योग्य ( $ which python) को संदर्भित करता है ?
13

1363

मैंने ऊपर पढ़ा है, यह महसूस करना एक पुराना सवाल है, लेकिन यह पूरी तरह से अनसुलझा है और अभी भी मेरे Google खोज परिणामों में सबसे ऊपर है, इसलिए यहां एक जवाब है जो सभी के लिए काम करता है:

pip install -r /path/to/requirements.txt

284
मुझे लगता है कि यह उत्तर मूल प्रश्न को संबोधित नहीं करता है, लेकिन यह उस प्रश्न का उत्तर देता है जो मुझे Google पर मिला था ...
जोनाथन

मूल प्रश्न बदल गया है - ध्यान दें कि वह अभी /path/to/requirements.txt का उपयोग कैसे कर रहा है।
माइक ल्योंस

8
@MikeLyons बहुत यकीन है कि सवाल वास्तव में नहीं बदला है - कोई संपादन इतिहास नहीं है।
मार्क अमेरी

48
उन लोगों के लिए जो यह जानना चाहते हैं कि वे क्या टाइप करते हैं, -आदेश में कमांड का अर्थ है "एक आवश्यकताओं फ़ाइल से इंस्टॉल करें", और --requirement
फ्लोरेंट चटर्जी

2
जब मैं एक पैकेज (जैसे Django) को अपग्रेड करना चाहता हूं, तो मैं अपनी आवश्यकताओं में संस्करण बदल देता हूं pip install -r /path/to/requirements.txt। यह परिवर्तन का पता लगाता है, पैकेज को अपग्रेड करता है और बाकी सब कुछ अकेला छोड़ देता है।
उपयोगकर्ता

129

Virtualenv के लिए आवश्यकताओं में सभी फ़ाइलों को स्थापित करने के लिए। फ़ाइल में।

  1. cd निर्देशिका के लिए जहाँ आवश्यकताएँ। txt स्थित है
  2. अपने virtualenv को सक्रिय करें
  3. रन: pip install -r requirements.txt अपने खोल में

3
Google के लिए "pyenv virtualenv pip install आवश्यकताएँ.txt काम नहीं कर रही है" ...
Jerad

यह अन्य उत्तरों के बजाय मेरे लिए काम करता है, ty
Jo Eark

58

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मैंने यह कोशिश की:

pip install -U -r requirements.txt 

(यू = अद्यतन अगर यह पहले से ही स्थापित था)

लेकिन समस्या जारी रही। मैंने महसूस किया कि विकास के कुछ सामान्य पुस्तकालय छूट गए हैं।

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

मुझे नहीं पता कि यह आपकी मदद करेगा।


32
pip install -r requirements.txt

अधिक जानकारी के लिए कृपया सहायता विकल्प देखें।

pip install --help

हम विकल्प '-r' पा सकते हैं

-r, --requmentment दिए गए आवश्यकताओं फ़ाइल से स्थापित करें। इस विकल्प का उपयोग कई बार किया जा सकता है।

कुछ सामान्य रूप से उपयोग किए जाने वाले पाइप इंस्टॉल विकल्पों के बारे में अधिक जानकारी: (यह पाइप इंस्टॉल कमांड पर सहायता विकल्प है)

यहां छवि विवरण दर्ज करें

इसके अलावा ऊपर विकल्पों का पूरा सेट है। विकल्पों की पूरी सूची के लिए कृपया पाइप इंस्टॉल --help का उपयोग करें।


26

संक्षिप्त जवाब

pip install -r /path/to/requirements.txt

या किसी अन्य रूप में:

python -m pip install -r /path/to/requirements.txt

व्याख्या

यहां, -rसंक्षिप्त रूप है --requirementऔर यह pipदिए गए requirementsफ़ाइल से इंस्टॉल करने के लिए कहता है ।

piprequirementsफ़ाइल में सभी सूचीबद्ध वस्तुओं की उपलब्धता की जांच के बाद ही स्थापना शुरू होगी और एक requirementअनुपलब्ध होने पर भी यह स्थापना शुरू नहीं करेगा ।

उपलब्ध पैकेजों को स्थापित करने के लिए एक वर्कअराउंड एक-एक करके सूचीबद्ध पैकेजों को स्थापित कर रहा है। उसके लिए निम्न कमांड का उपयोग करें। अनुपलब्ध पैकेजों के बारे में आपको सूचित करने के लिए एक लाल रंग की चेतावनी दिखाई जाएगी।

cat requirements.txt | xargs -n 1 pip install

टिप्पणियों (लाइनों के साथ शुरू होने वाली #) और रिक्त लाइनों को अनदेखा करने के लिए , उपयोग करें:

cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install

20

अक्सर, आप PyPI की जांच किए बिना, स्थानीय अभिलेखागार से तेज़ इंस्टालेशन चाहते हैं।

सबसे पहले, अपनी आवश्यकताओं को पूरा करने वाले अभिलेखागार डाउनलोड करें:

$ pip install --download <DIR> -r requirements.txt

फिर, का उपयोग कर स्थापित करें –find-linksऔर –no-index:

$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt

no such option: --download
मैक्स मालेश

12

मैं बहुत सारे सिस्टम के साथ काम करता हूं जो डेवलपर्स द्वारा "इंटरनेट पर पाए जाने वाले निर्देशों का पालन करते हुए" किया गया है। यह बेहद आम है कि आपके pipऔर आपके pythonरास्ते समान / साइट-पैकेज नहीं दिख रहे हैं। इस कारण से, जब मैं विषमता का सामना करता हूं, तो मैं यह करना शुरू करता हूं:

$ python -c 'import sys; print(sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']

$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

यह एक खुशहाल व्यवस्था है

नीचे एक दुखी प्रणाली है । (या कम से कम यह एक आनंदित अज्ञानी प्रणाली है जो दूसरों को दुखी करती है।)

$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

$ python -c 'import sys; print(sys.path)'
['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']

$ which pip pip2 pip3
/usr/local/bin/pip
/usr/local/bin/pip3

यह दुखी है क्योंकि pippython3.6 है और /usr/local/lib/python3.6/site-packagesजबकि python(python2.7) का उपयोग कर रहा है/usr/local/lib/python2.7/site-packages

जब मैं यह सुनिश्चित करना चाहता हूं कि मैं सही अजगर के लिए आवश्यकताओं को स्थापित कर रहा हूं , तो मैं यह करता हूं:

$ which -a python python2 python3
/usr/local/bin/python
/usr/bin/python
/usr/local/bin/python2
/usr/local/bin/python3

$ /usr/bin/python -m pip install -r requirements.txt

आपने सुना है, "अगर यह नहीं टूटा है, तो इसे ठीक करने की कोशिश न करें।" उस का DevOps संस्करण है, "यदि आपने इसे नहीं तोड़ा है और आप इसके चारों ओर काम कर सकते हैं, तो इसे ठीक करने का प्रयास न करें।"


10

सबसे पहले, एक आभासी वातावरण बनाएं

अजगर 3.6 में

virtualenv --python=/usr/bin/python3.6 <path/to/new/virtualenv/>

अजगर 2.7 में

virtualenv --python=/usr/bin/python2.7 <path/to/new/virtualenv/>

फिर पर्यावरण को सक्रिय करें और आवश्यकता में उपलब्ध सभी संकुल को स्थापित करें। फ़ाइल में।

source <path/to/new/virtualenv>/bin/activate
pip install -r <path/to/requirement.txt>

9

आवश्यकताओं को स्थापित करना। python 3 के साथ वर्चुअल एनवी के अंदर फ़ाइल:

मेरी भी यही समस्या थी। मैं एक आभासी पर्यावरण के अंदर आवश्यकताओं को स्थापित करने की कोशिश कर रहा था। मुझे इसका हल मिल गया।

प्रारंभ में, मैंने अपना वर्चुअल एनवी इस तरह बनाया:

virtualenv -p python3 myenv

पर्यावरण का उपयोग कर सक्रिय करें:

source myenv/bin/activate

अब मैंने आवश्यकताएँ स्थापित कीं।

pip3 install -r requirements.txt

स्थापना सफल रही और मैं मॉड्यूल आयात करने में सक्षम था।


वर्चुअल वातावरण के अंदर आवश्यकताओं फ़ाइल स्थापित करते समय मुझे इस समस्या का सामना करना पड़ा। मैंने अब मुद्दे को संबोधित करने के लिए अपनी प्रतिक्रिया को संशोधित किया है
जानु

1
विंडोज पर एनाकोंडा अजगर 3.6 का उपयोग करना, मैं नहीं था virtualenv -p python myenv, myenv\Scripts\activate.bat,pip install -r requirements.txt
bdforbes

1
वास्तव में, इसके विपरीत, यह केवल जवाब यह है कि तरह लगता है करता है में स्थानीय रूप से परिभाषित deps स्थापित करने के बारे सवाल का हिस्सा का जवाब requirements.txtएक virtualenv करने के लिए। जब तक मुझे कुछ याद नहीं आ रहा है? कोई बात नहीं धन्यवाद!
डेवनिकविल


7
pip install --user -r requirements.txt 

या

pip3 install --user -r requirements.txt 

क्या फ़ाइल के --userअंदर निर्दिष्ट करना संभव है requirements.txt?
लियांग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.