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 installingcác splintergó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 djangosẽ cài đặt hai gói có tênsplintervàdjango.splinter[django], mặt khác, cài đặt một biến thể củasplintergói có hỗ trợ chodjango. Lưu ý rằng nó không liên quan gì đếndjangobản thân gói mà chỉ là một chuỗi đượcsplintergói xác định cho một bộ tính năng cụ thể được bật.
extranghĩa là gì?
splintervà django. splinter[django], mặt khác, cài đặt một biến thể của splintergói có hỗ trợ cho django. Lưu ý rằng nó không liên quan gì đến djangobản thân gói mà chỉ là một chuỗi được splintergói xác định cho một bộ tính năng cụ thể được bật.
splintervẫn là tên gói; pipchí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.pytệ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 splintersẽ 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 airflowtừ 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-airflowlư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.pyBạ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” ...