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 installingyang splinterpaket 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 djangoakan menginstal dua paket bernamasplinterdandjango.splinter[django], di sisi lain, menginstal variansplinterpaket yang berisi dukungan untukdjango. Perhatikan bahwa ini tidak ada hubungannya dengandjangopaket itu sendiri, tetapi hanya string yang ditentukan olehsplinterpaket untuk set fitur tertentu yang diaktifkan.
extraartinya?
splinterdan django. splinter[django], di sisi lain, menginstal varian splinterpaket yang berisi dukungan untuk django. Perhatikan bahwa ini tidak ada hubungannya dengan djangopaket itu sendiri, tetapi hanya string yang ditentukan oleh splinterpaket untuk set fitur tertentu yang diaktifkan.
splintermasih merupakan nama paket; pipitu sendiri mem splinter[django]- parsing dan mengenalinya sebagai nama paket dengan "argumen" tambahan untuk membantunya menginstal file yang benar. Bagaimana argumen djangodiinterpretasikan sepenuhnya tergantung pada setup.pyfile (atau file konfigurasi lainnya? Saya tidak benar-benar tahu detailnya) yang digunakan untuk mendefinisikan paket splinter.
pip install splinterakan 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 airflowdari 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-airflowcatatan 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.pyAnda dapat melihat bagaimana ini dilakukan dalam setup.py skrip
Di sebelah kiri dalam setup.py- extras_requiredidefinisikan.
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" ...