Tôi thấy ngày càng nhiều lệnh như thế này:
$ pip install "splinter[django]"
Những dấu ngoặc vuông này làm gì?
Tôi thấy ngày càng nhiều lệnh như thế này:
$ pip install "splinter[django]"
Những dấu ngoặc vuông này làm gì?
pip install "splinter[django]"
, để tránh bất kỳ sự mở rộng vỏ ngẫu nhiên nào của mẫu.
Câu trả lời:
Cú pháp mà bạn đang sử dụng là:
pip install "project[extra]"
Trong trường hợp của bạn, bạn sẽ được installing
các splinter
gói trong đó có sự hỗ trợ thêm cho django
. Dấu ngoặc vuông ( []
) không phải là cú pháp cụ thể, chỉ là quy ước. Thực sự, bạn đang cài đặt các gói có tên là: "splinter[django]"
.
Giải thích từ @chetner
:
Lệnh
pip install splinter django
sẽ cài đặt hai gói có tênsplinter
vàdjango
.splinter[django]
, mặt khác, cài đặt một biến thể củasplinter
gói có hỗ trợ chodjango
. Lưu ý rằng nó không liên quan gì đếndjango
bản thân gói mà chỉ là một chuỗi đượcsplinter
gói xác định cho một bộ tính năng cụ thể được bật.
extra
nghĩa là gì?
splinter
và django
. splinter[django]
, mặt khác, cài đặt một biến thể của splinter
gói có hỗ trợ cho django
. Lưu ý rằng nó không liên quan gì đến django
bản thân gói mà chỉ là một chuỗi được splinter
gói xác định cho một bộ tính năng cụ thể được bật.
splinter
vẫn là tên gói; pip
chính nó phân tích cú pháp splinter[django]
và nhận ra nó là một tên gói với một "đối số" bổ sung để giúp nó cài đặt các tệp chính xác. Đối số django
được diễn giải như thế nào hoàn toàn phụ thuộc vào setup.py
tệp (hoặc một số tệp cấu hình khác? Tôi thực sự không biết chi tiết) được sử dụng để xác định gói splinter
.
pip install splinter
sẽ cài đặt ít yêu cầu hơn pip install splinter[django]
. Các gói bổ sung được cài đặt có thể thực sự (và có thể có) cho phép các tính năng bổ sung của splinter hoạt động, nhưng nó không thay đổi bất cứ điều gì về bản thân gói splinter. Nó chỉ cho pip biết về các phụ thuộc bổ sung.
[optional]
trong PIP biểu thị các phụ thuộc tùy chọnChỉ trong trường hợp một nhà phát triển khác đến tìm cách triển khai mẫu này trong triển khai gói Python của riêng họ, đây là giải thích thêm về brackets []
trong pip.
Để cài đặt airflow
từ pip, chúng tôi sử dụng lệnh này:
pip install 'apache-airflow'
Bạn có thể cài đặt các thành phần tùy chọn của luồng không khí với:
pip install 'apache-airflow[aws]'
# [optional] -----------^
Khi chúng tôi tìm kiếm pypi để apache-airflow
lưu ý rằng các gói tùy chọn không hiển thị:
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
Bạn có thể thấy cách thực hiện điều này trong setup.py
tập lệnh
Ở bên trái trong setup.py
- extras_require
được định nghĩa.
Ở bên phải là các lệnh cài đặt tương quan cho các gói phụ tùy chọn này.
Khá chắc chắn đây là các tính năng bổ sung của setuptools:
Đôi khi một dự án có các phụ thuộc được “khuyến nghị”, không bắt buộc đối với tất cả các mục đích sử dụng của dự án. Ví dụ: một dự án có thể cung cấp đầu ra PDF tùy chọn nếu ReportLab được cài đặt và hỗ trợ reStructuredText nếu docutils được cài đặt. Các tính năng tùy chọn này được gọi là “tính năng bổ sung” ...