मैं इस तरह से अधिक से अधिक आदेशों को देखता हूं:
$ pip install "splinter[django]"
ये वर्ग कोष्ठक क्या करते हैं?
मैं इस तरह से अधिक से अधिक आदेशों को देखता हूं:
$ pip install "splinter[django]"
ये वर्ग कोष्ठक क्या करते हैं?
pip install "splinter[django]"
, पैटर्न के किसी भी आकस्मिक खोल विस्तार से बचने के लिए।
जवाबों:
आपके द्वारा उपयोग किया जा रहा वाक्यविन्यास है:
pip install "project[extra]"
आपके मामले में, आप installing
वह splinter
पैकेज हैं जिसके लिए अतिरिक्त समर्थन है django
। वर्ग कोष्ठक ( []
) विशिष्ट सिंटैक्स नहीं हैं, बस सम्मेलन। वास्तव में, आप नाम के पैकेज को स्थापित कर रहे हैं "splinter[django]"
:।
से एक स्पष्टीकरण @chetner
:
कमांड
pip install splinter django
दो पैकेज नामित करेगाsplinter
औरdjango
।splinter[django]
दूसरी ओर,splinter
पैकेज का एक संस्करण स्थापित करता है जिसमें समर्थन शामिल हैdjango
। ध्यान दें कि इसकाdjango
पैकेज से कोई लेना-देना नहीं है, लेकिनsplinter
एक विशेष सुविधा सेट के लिए पैकेज द्वारा परिभाषित एक स्ट्रिंग है जो सक्षम हो जाती है।
extra
मतलब है?
splinter
और स्थापित करेगा django
। splinter[django]
दूसरी ओर, splinter
पैकेज का एक संस्करण स्थापित करता है जिसमें समर्थन शामिल है django
। ध्यान दें कि इसका django
पैकेज से कोई लेना-देना नहीं है, लेकिन splinter
एक विशेष सुविधा सेट के लिए पैकेज द्वारा परिभाषित एक स्ट्रिंग है जो सक्षम हो जाती है।
splinter
अभी भी पैकेज का नाम है; pip
स्वयं पार्स करता है splinter[django]
और इसे सही फ़ाइलों को स्थापित करने में मदद करने के लिए एक अतिरिक्त "तर्क" के साथ पैकेज नाम के रूप में पहचानता है। तर्क django
की व्याख्या कैसे की जाती है यह पूरी तरह से setup.py
फाइल (या कुछ अन्य कॉन्फिगर फाइल के लिए है? मुझे वास्तव में जानकारी नहीं है) पैकेज को परिभाषित करने के लिए उपयोग किया जाता है splinter
।
pip install splinter
की तुलना में कम आवश्यकताओं को स्थापित करेगा pip install splinter[django]
। जो अतिरिक्त पैकेज स्थापित हैं, वे वास्तव में काम कर सकते हैं (और शायद करते हैं) स्प्लिटर की अतिरिक्त विशेषताओं को काम करने में सक्षम बनाता है, लेकिन यह स्प्लिन्टर पैकेज के बारे में कुछ भी नहीं बदलता है। यह सिर्फ अतिरिक्त निर्भरता के बारे में पाइप बताता है।
[optional]
पीआईपी में ब्रैकेट वैकल्पिक निर्भरता को दर्शाता हैबस एक और डेवलपर अपने स्वयं के पायथन पैकेज परिनियोजन में इस पैटर्न को लागू करने की तलाश में आता है, यहां brackets []
पाइप में आगे की व्याख्या की गई है।
पाइपairflow
से स्थापित करने के लिए हम इस कमांड का उपयोग करते हैं:
pip install 'apache-airflow'
आप के साथ airflow के वैकल्पिक घटक स्थापित कर सकते हैं :
pip install 'apache-airflow[aws]'
# [optional] -----------^
जब हम खोज pypi के लिए apache-airflow
ध्यान दें कि वैकल्पिक संकुल दिखाई नहीं देती हैं:
pip search 'apache-airflow'
apache-airflow (1.10.9) - Programmatically author, schedule and monitor data pipelines
pylint-airflow (0.1.0a1) - A Pylint plugin to lint Apache Airflow code.
swe-airflow-tools (0.0.3) - Tools for Apache Airflow Application
airflow (0.6) - Placeholder for the old Airflow package
...
setup.py
आप देख सकते हैं कि यह setup.py
स्क्रिप्ट में कैसे पूरा किया गया था -
बाईं ओर setup.py
- extras_require
में परिभाषित किया गया है।
दाईं ओर इन वैकल्पिक उप-संकुल के लिए सहसंबद्ध स्थापना कमांड हैं।
बहुत यकीन है कि ये setuptools एक्स्ट्रा कलाकार हैं:
कभी-कभी किसी परियोजना में "अनुशंसित" निर्भरताएं होती हैं, जो परियोजना के सभी उपयोगों के लिए आवश्यक नहीं होती हैं। उदाहरण के लिए, एक प्रोजेक्ट वैकल्पिक PDF आउटपुट की पेशकश कर सकता है यदि ReportLab स्थापित किया गया है, और डॉकुटिल्स स्थापित होने पर ReStructuredText समर्थन। इन वैकल्पिक विशेषताओं को "एक्स्ट्रा" कहा जाता है ...
शायद यह जानने के लिए कि यह वैकल्पिक पैकेज सिंटैक्स एकाधिक एक्स्ट्रा को स्वीकार करता है (कोष्ठक के भीतर अल्पविराम द्वारा अलग):
python -m pip install SomePackage[PDF,EPUB] # multiple extras
पाइप मैनुअल के अनुसार