Apakah setuptools selalu diinstal dengan Python secara default?

Nov 13 2020

Apakah setuptoolsselalu diinstal dengan Python?

Saya ingin menjalankan setuptoolssaat runtime di luar setup.pyskrip.

Dengan kata lain, harus saya sertakan setuptoolsdalam paket saya requirements.txtdan setup.py's install_requiresdaftar?


Latar Belakang

Saya perhatikan saat membuat lingkungan virtual baru (dengan Python 3.7.9) yang keduanya pipdan setuptoolsdiinstal secara default:

python -m venv venv
source ./venv/bin/activate
pip list

Package    Version
---------- -------
pip        20.1.1
setuptools 47.1.0

Ini didokumentasikan di sini: Membuat Lingkungan Virtual :

venv tersedia secara default di Python 3.3 dan yang lebih baru, dan menginstal pip dan setuptools ke dalam lingkungan virtual yang dibuat dengan Python 3.4 dan yang lebih baru.

Bahkan dalam versi vanilla dari Python 3.7.6 (diinstal melalui pyenv), paket yang diinstal secara default adalah pipdan setuptools.


Penelitian

Haruskah setuptools disertakan dalam setup_requires dengan Python?

Menginformasikan yang setuptoolsseharusnya tidak disertakan setup_requires, tetapi tidak membicarakannya yang disertakan dalam persyaratan paket untuk penggunaan runtime.

Jawaban

2 LiorCohen Nov 13 2020 at 05:59

TL; DR

Secara formal, Tidak. Biasanya, Ya.

setuptools bukan bagian dari basis kode python vanilla, oleh karena itu bukan modul vanilla .

Penginstal python.org atau mac homebrew akan menginstalnya untuk Anda, tetapi jika seseorang mengompilasi python sendiri atau menginstalnya di beberapa distribusi linux, dia mungkin tidak mendapatkannya dan perlu menginstalnya sendiri .