Saya melihat semakin banyak perintah seperti ini:
$ pip install "splinter[django]"
Apa yang dilakukan tanda kurung siku ini?
Saya melihat semakin banyak perintah seperti ini:
$ pip install "splinter[django]"
Apa yang dilakukan tanda kurung siku ini?
pip install "splinter[django]"
, untuk menghindari perluasan pola cangkang yang tidak disengaja.
Jawaban:
Sintaks yang Anda gunakan adalah:
pip install "project[extra]"
Dalam kasus Anda, Anda installing
yang splinter
paket yang memiliki dukungan ditambahkan untuk django
. Tanda kurung siku ( []
) bukanlah sintaks spesifik, hanya konvensi. Benar-benar, Anda menginstal paket bernama: "splinter[django]"
.
Penjelasan dari @chetner
:
Perintah tersebut
pip install splinter django
akan menginstal dua paket bernamasplinter
dandjango
.splinter[django]
, di sisi lain, menginstal variansplinter
paket yang berisi dukungan untukdjango
. Perhatikan bahwa ini tidak ada hubungannya dengandjango
paket itu sendiri, tetapi hanya string yang ditentukan olehsplinter
paket untuk set fitur tertentu yang diaktifkan.
extra
artinya?
splinter
dan django
. splinter[django]
, di sisi lain, menginstal varian splinter
paket yang berisi dukungan untuk django
. Perhatikan bahwa ini tidak ada hubungannya dengan django
paket itu sendiri, tetapi hanya string yang ditentukan oleh splinter
paket untuk set fitur tertentu yang diaktifkan.
splinter
masih merupakan nama paket; pip
itu sendiri mem splinter[django]
- parsing dan mengenalinya sebagai nama paket dengan "argumen" tambahan untuk membantunya menginstal file yang benar. Bagaimana argumen django
diinterpretasikan sepenuhnya tergantung pada setup.py
file (atau file konfigurasi lainnya? Saya tidak benar-benar tahu detailnya) yang digunakan untuk mendefinisikan paket splinter
.
pip install splinter
akan menginstal lebih sedikit persyaratan dari pip install splinter[django]
. Paket tambahan yang diinstal mungkin (dan mungkin memang) memungkinkan fitur tambahan dari splinter untuk bekerja, tetapi itu tidak mengubah apapun tentang paket splinter itu sendiri. Ini hanya memberi tahu pip tentang dependensi tambahan.
[optional]
di PIP menandakan dependensi opsionalUntuk berjaga-jaga jika ada pengembang lain yang ingin mengimplementasikan pola ini dalam penerapan paket Python mereka sendiri, berikut penjelasan lebih lanjut tentang brackets []
in pip.
Untuk menginstal airflow
dari pip kami menggunakan perintah ini:
pip install 'apache-airflow'
Anda dapat memasang komponen opsional aliran udara dengan:
pip install 'apache-airflow[aws]'
# [optional] -----------^
Ketika kami mencari pypi untuk apache-airflow
catatan bahwa paket opsional tidak muncul:
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
Anda dapat melihat bagaimana ini dilakukan dalam setup.py
skrip
Di sebelah kiri dalam setup.py
- extras_require
didefinisikan.
Di sebelah kanan adalah perintah instalasi terkait untuk sub-paket opsional ini.
Cukup yakin ini adalah ekstra setuptools:
Terkadang sebuah proyek memiliki dependensi "direkomendasikan", yang tidak diperlukan untuk semua penggunaan proyek. Misalnya, sebuah proyek mungkin menawarkan keluaran PDF opsional jika ReportLab diinstal, dan dukungan reStructuredText jika docutils diinstal. Fitur opsional ini disebut "ekstra" ...