Các setuptools luôn được cài đặt bằng Python theo mặc định?
Là setuptoolsluôn luôn được cài đặt với Python?
Tôi muốn gọi setuptoolstrong thời gian chạy bên ngoài một setup.pytập lệnh.
Nói cách khác, tôi nên bao gồm setuptoolstrong gói của tôi requirements.txtvà setup.pycủa install_requiresdanh sách?
Lý lịch
Tôi đã nhận thấy khi tạo một môi trường ảo mới (với Python 3.7.9) cả hai pipvà setuptoolsđược cài đặt theo mặc định:
python -m venv venv
source ./venv/bin/activate
pip list
Package Version
---------- -------
pip 20.1.1
setuptools 47.1.0
Điều này được ghi lại ở đây: Tạo Môi trường Ảo :
venv có sẵn theo mặc định trong Python 3.3 trở lên và cài đặt pip và setuptools vào các môi trường ảo đã tạo trong Python 3.4 trở lên.
Ngay cả trong phiên bản mới nhất của Python 3.7.6 (được cài đặt qua pyenv), các gói được cài đặt theo mặc định là cả pipvà setuptools.
Nghiên cứu
Công cụ thiết lập có nên được đưa vào setup_requires bằng Python không?
Thông báo setuptoolskhông nên được đưa vào setup_requires, nhưng không nói về việc nó được đưa vào các yêu cầu gói để sử dụng trong thời gian chạy.
Trả lời
TL; DR
Về mặt hình thức, Không. Thông thường, Có.
setuptools không phải là một phần của cơ sở mã python vani, do đó không phải là mô-đun vani .
Trình cài đặt python.org hoặc mac homebrew sẽ cài đặt nó cho bạn, nhưng nếu ai đó tự biên dịch python hoặc cài đặt nó trên một số bản phân phối linux, người đó có thể không nhận được nó và sẽ cần phải tự cài đặt nó .