Administrasi ketergantungan dengan Python: panduan lengkap dan aman

Pembaharuan Terakhir: 11/19/2025
  • Ini adalah setiap proyek dengan lingkungan virtual dan memblokir versi arsip kunci untuk menjamin reproduksi.
  • Elige herramienta según el kontekso: pip+venv, Pipenv, Poetry, PDM o Rye, dan memahami fortalezasnya.
  • Periksa keamanan versi, verifikasi hash, dan deteksi kerentanan dalam ketergantungan transitif.
  • Sesuaikan flue yang hilang dengan persyaratan.txt di MWAA dan Cloud Run, dan gunakan ruedas atau repo pribadi ketika terjadi kesalahan.

manajemen ketergantungan dengan Python

Administrasi ketergantungan dengan Python adalah tema yang lambat atau lambat dieksploitasi dalam cara jika tidak ada pekerjaan yang dilakukan. Meskipun banyak orang yang memprogram buku harian dengan Python, mereka tidak selalu perlu memperhatikan cara menginstal, membuka, dan memperbarui paket terceros. Di antara benda-benda, kegagalan dari kebiasaan-kebiasaan yang padat dan kepatuhan terhadap pola ketergantungan, mudah untuk membuat orang penasaran yang mempengaruhi desarrollo, pruebas, dan despliegues.

Berikut ini adalah panduan lengkap dan praktis yang perlu Anda ketahui: yang merupakan manajemen ketergantungan yang baik dan karena itu penting, bagaimana menggunakan pip dan lingkungan virtual, bagaimana bekerja dengan persyaratan.txt (termasuk integrasinya dengan IDE seperti Visual Studio), yang diperlukan untuk melakukan tindakan seperti itu Pipenv, Puisi, PDM atau Rye, dan bagaimana tampil di depan platform cloud seperti Amazon MWAA (Airflow) dan Cloud RunAnda juga akan melihat rekomendasi keamanan (bloqueo y pinning, escaneo de vulnerabilidades) dan pistas claras sobre cuándo elegir setiap herramienta.

Apa yang dimaksud dengan manajemen ketergantungan dan mengapa itu penting

Dengan Python, setiap proyek proyek akan datang dalam pustaka dan kerangka kerja terceros. Ini adalah hal lain yang juga merupakan ketergantungan pada propias ketergantungan transitifnya; misalnya, jika menggunakan panda, arrastras NumPy. Dengan beberapa paket yang Anda buatkan grafis yang, pengendalian dosa, dapat diperoleh dengan ketidaksesuaian, perilaku yang tidak sesuai, atau kesalahan yang tidak disengaja.

Situasinya rumit karena itu Menyelesaikan konflik versi dan grafik ketergantungan dapat diselesaikan dalam kasus nyata (masuk ke wilayah komplejidad tipe NP-hard). Oleh karena itu, ada strategi yang salah: buka setiap proyek, temukan versinya kapan saja, blokir ruang arsip kunci dan gunakan perangkat yang harus transparan yang Anda instal dan untuk itu.

pip y el día a día: instalasi, aktualisasi, informasi dan limpieza

pip adalah pengelolaan paket klasik ekosistem dan tampilan seri dalam versi modern Python. Comprueba su presencia con pip --version o python -m pip --version. Jika karena alasan apa pun ini tidak tersedia, Anda dapat melanjutkan dengan skrip instalasi yang sesuai atau melintasi gestor paket distribusi Anda di Linux.

Untuk menginstal paket dari indeks PyPI resmi, cukup con pip install nombre_paquete. Jika Anda menginginkan versi yang konkret, Anda dapat menggunakannya == (misalnya, pip install requests==2.23.0) atau spesifikasi khusus yang kompatibel seperti ~= para acotar a una rama menor (pip install requests~=2.18.0). pip simpan cache lokal yang mempercepat instalasi di masa mendatang.

Untuk merevisi apa yang telah Anda instal, ulangi a pip list, dan jika Anda ingin tahu detail paket yang dibuat secara konkret (ruta, versión, dependencias declaradas), pip show nombre. Juga, dengan pip list --outdated mendeteksi paket yang dinonaktifkan dan ditipu pip install --upgrade nombre mengaktualisasikan sebuah biblioteca konkret. Jika ya, tidak tuan, pip uninstall nombre te ayuda a limpiarlo.

Juga dimungkinkan untuk menginstal dari repositori Git jika diperlukan, misalnya: pip install git+https://github.com/usuario/repositorio.git@rama. Pelanggan ini melayani untuk banyak orang, etiket, atau bahkan melakukan hal-hal nyata, sampai mereka memeriksa versi sebelumnya dan yang terbaru.

Repositori, PyPI, dan lembar persyaratan.txt

PyPI adalah indikasi pusat ekosistem dan akan dipublikasikan pada sebagian besar paket. Semua dapat berkonsultasi dengan versi, lisensi, kompatibilitas dengan interpretasi, perintah instalasi, dan detail lainnya. Jika Anda tidak melakukan revisi sebelumnya, harap putar beberapa menit dan revisi tempat pemasangannya, jika Anda melanjutkan, buka versi untuk menghindari masalah.

Bentuk tradisional untuk menangkap keadaan di dalam ruangan adalah dengan pip freeze > requirements.txt. Arsip ini mencakup semua versi yang perlu Anda instal, sehingga memudahkan pemutaran entorno di mesin lain dengan pip install -r requirements.txt. Ini adalah praktik yang bagus untuk proyek yang ingin dipindahkan antara peralatan, yaitu produksi.

Jika Anda bekerja dengan Visual Studio, ada dukungan langsung untuk ini: Anda dapat menginstal ketergantungan dari persyaratan.txt, menghasilkan, memperbarui entri yang ada, atau mengulanginya secara lengkap dari Penjelajah solusi dan perangkat Entornos de Python. Selain itu, jika ada ketergantungan yang gagal, Anda perlu melakukan beberapa cara: edit arsip untuk mengecualikan paket yang bermasalah dan coba lagi, atau jalankan versi yang dapat diinstal dengan opsi pip.

Pencarian yang benar dalam skenario perusahaan sedang mengumpulkan repositori perusahaan lokal: dengan pip wheel menciptakan ruedas dan luego apuntas en persyaratan.txt opsi seperti itu --find-links y --no-index untuk menginstal dari tempat Anda berada di dalam. Teknik ini mempercepat instalasi dan menghindari ketergantungan pada Internet setelahnya.

persyaratan arsip.txt dan PyPI

Entornos virtuales: islamiento imprescindible

Menginstal ketergantungan pada lingkungan global sistem Anda biasanya merupakan ide yang buruk. Sangat direkomendasikan bahwa setiap proyek hidup di lingkungan virtual Anda, dengan cara yang versi dan paket yang dienkapsulasi. Menipu venv menciptakan seluruh dedikasi dan, selain itu, semua yang diinstal pada pip tidak akan tergantung pada proyek mereka.

Ini adalah ajaran Islam yang mengizinkan pelanggaran dan perbaikan di lingkungan kerja yang tidak berdampak pada pekerjaan lain, menghindari konflik antara versi dan memfasilitasi kehidupan dalam peralatan di setiap repositori yang memiliki daftar kebutuhan. Jika Anda melakukan suatu rutinitas, itu adalah cara yang bagus.

Pipenv: dependencias dan entornos bajo el mismo paraguas

Pipenv nació untuk menyederhanakan binomio pip + venv dan sumar trazabilidad con archives de lock. Mempertahankan a Pipfile untuk menyatakan ketergantungan dan un Pipfile.lock yang memblokir versi beton, memastikan bahwa setiap peralatan dipasang tepat pada tempatnya.

Diantara kelebihannya: dibuat dan dikelola secara virtual secara otomatis, memisahkan ketergantungan normal dan desarrollo, dan terintegrasi dengan baik dengan pemanfaatan ekosistem lainnya. Instal paketnya langsung seperti itu pipenv install requests; jika Anda ingin ketergantungan pada pengembang, pipenv install pytest --dev. Para activar el entorno, pipenv shell; para salir, exit.

Dalam Pipfile Anda dapat menggunakan versi khusus yang sudah dikenal seperti ==, >=, ~ o ^. Meskipun SemVer populer dan mudah digunakan, dalam ekosistem Python referensi formal versi yang diterima dari perintah PEP 440, sehingga Anda dapat memasukkan enfoques tersebut agar tidak terus-menerus ketika Anda memilih perangkat untuk PEP 440.

Jika paket Anda gagal: pipenv uninstall nombre hapus dan perbarui Pipfile seperti Pipfile.lock. Agar Anda tidak dapat mereproduksi dan mendapatkan pengalaman lebih dari panduan yang pip+venv, Pipenv adalah pilihan yang sangat masuk akal.

Puisi, PDM dan Rye: flujo moderno con pyproject.toml y lock

Puisi, PDM, dan Rye dan beberapa hal lainnya: ketergantungan gestionan, empaquetado, dan publikasi yang diajukan di pyproject.toml dan di arsip kunci. Dengan Puisi dapat memulai proyek, menentukan metadato, membangun paket, dan mempublikasikannya di PyPI tanpa meninggalkan antarmuka pengguna. Ini adalah solusi lengkap untuk memulihkan ketergantungan dengan pemahaman metadato PyPI dan tabel PEP 440.

Sebuah ide klasik dari Puisi dan familia es que pyproject.toml jelas bahwa proyek tersebut mencapai tingkat yang tinggi, saat arsip kunci berisi foto versi persis dan hash yang berfungsi. Jadi, tim berkolaborasi berdasarkan definisi deklaratif dan kunci jaminan bahwa laut dapat direproduksi tanpa ketergantungan pada transitif.

PDM menawarkan pengalaman yang sangat mirip, juga di pusat pyproject.toml, dan Rye menambahkan enfoque yang berbeda: selain mengelola ketergantungan, Anda dapat menginstal versi Python untuk proyek, unificando lebih dari flujo de trabajo. Rye didorong oleh Armin Ronacher, yang ditemukan di ekosistem oleh proyek seperti Flask dan Click.

Como aviso para navegantes: penyelesaian konflik di antara paket tidak selalu berhasil dengan sempurna. Pada saat Anda memprioritaskan ketergantungan yang diminta, buka aplikasi atau sesuaikan kode untuk versi yang kompatibel. Itu adalah kehidupan nyata dari proyek ketika gambarnya dibuat.

uv dan pixi: propuestas baru yang bekerja dengan kecepatan dan reproduksi

Dalam beberapa tahun terakhir, perangkat keras seperti uv dan pixi yang menggunakan fokus dalam kecepatan instalasi dan dalam jumlah besar yang dapat direproduksi dan kedap udara. Intinya, untuk melakukan persiapan secara drastis dan menentukan jumlah ketergantungan yang ditetapkan, dengan pengalaman yang menghasilkan daya tarik bagi CI dan untuk beralih ke skala besar.

Meskipun demikian, semua orang telah menghidupkan kembali opsi-opsi konsolidasi, mempelajari proyek di dalam botol-botol yang ada di dalam persiapan entorno atau diprioritaskan pada reproduksi yang lebih cepat. Pemilihan terakhir bergantung pada kebutuhan Anda, Anda harus melakukannya dan Anda akan baik-baik saja menggabungkannya dengan restoran Anda.

Keamanan: fijar, bloquear, verificar dan escanear

Blokir versi mediante arsip seperti persyaratan.txt, Pipfile.lock atau kunci Puisi tidak ada posturnya: kurangi riesgos reales. Pada versi yang ada, minimalkan pembaruan yang tidak disengaja yang memasukkan paket dengan kerentanan terkini atau, atau, konten berbahaya. Selain itu, banyak file yang disimpan terkunci hashes de integridad artefak-artefak tersebut, cara yang sama jika arsip yang diunduh tidak bertepatan, maka perangkat tersebut akan menjadi sebuah keberlangsungan dalam rangkaian suministro.

Untuk menjaga peralatan atau menyelesaikan produksi, sentralisasi dan ketergantungan audit adalah clave. Perangkat lunak yang terintegrasi seperti platform analisis (sebagai contoh, digunakan pipgrip untuk menambahkan grafik) mendeteksi kerentanan, masalah lisensi, dan paket bawaan. Selain itu, jika sistem diunduh dan dianalisis di dalam ruangan, ganancia tersebut terlihat: apa yang bergantung, apa yang Anda lakukan, dan apa yang akan disajikan.

Jika Anda menggunakan pelindung ketergantungan pada tingkat arsitektur, dapat menyetujui hal ini ke pusat untuk audit dan menyokong komponen-komponen riesgo, implementasi antar-kabupaten melalui upaya yang aman atau ganda dalam lingkungan perusahaan. Clave ini hanya memasukkan piezas yang dapat dikonfigurasi, dengan versi fijadas dan validadas.

Integrasi dengan Visual Studio: pembuatan dan pemeliharaan persyaratan.txt

Visual Studio memfasilitasi siklus klasik persyaratan.txt: Anda dapat menginstal semua gambar yang ada di arsip, dibuat dari entorno aktual atau diperbarui dengan cara selektif. Ketika ya ada, IDE menawarkan pilihan seperti yang dimasukkan kembali, aktualisasikan hanya entri yang disajikan atau aktualisasi dan tambahkan entri baru yang terdeteksi di entorno.

Jika instalasi gagal, tienes dos salidas reconocidas: edit arsip untuk mengecualikan paket yang bertentangan dan putar niat, atau gunakan pilihan pip untuk membuka versi yang Anda instal. Untuk entornos controlados, kompilasi ruedas con pip wheel dan gunakan --find-links y --no-index dalam persyaratan.txt mempercepat jauh dan telah mengurangi ketergantungan Internet.

Cloud y despliegues: Amazon MWAA (Airflow) y Cloud Run

Dalam Amazon Managed Workflows for Apache Airflow (MWAA) instalasi dependensi didasarkan pada persyaratan.txt yang juga ada di S3. Setiap kali Anda mendapatkan versi baru, di konsol MWAA akan menampilkan revisi dan layanan yang dijalankan pip3 install -r requirements.txt tanto en el scheduler seperti para pekerja. Anda dapat menginstal tambahan Airflow, ruedas (.whl) dan juga menggunakan indeks privasi yang kompatibel dengan PyPI.

Ini adalah versi terbaru yang direkomendasikan untuk mencegah inkompatibilitas yang tidak diinginkan; jika Anda membuat paket tanpa versi, MWAA akan menampilkan yang terakhir, dengan konflik yang terjadi dengan restorasi arsip Anda. Anda dapat meninjau log penjadwal di CloudWatch untuk mengonfirmasi bahwa Anda akan melakukan instalasi seperti yang diharapkan dan mencegah kesalahan instalasi.

Dalam kasus Cloud Run untuk fungsi dengan Python, Standar penerimaannya adalah persyaratan.txt di direktori lain yang Anda main.py. Pipfile atau Pipfile.lock tidak mendukung hal ini, karena Anda tidak perlu memasukkannya ke dalam proyek. Kerangka Fungsi adalah ketergantungan wajib; meskipun platform dapat diinstal oleh Anda, harap dinyatakan dengan jelas.

Jika Anda memerlukan pembatasan ketergantungan lokal (karena tidak ada akses Internet atau karena paket tidak ada di PyPI), puedes descargar ruedas con pip download untuk versi Python dan platform lanjutan dan hapus kode tersebut. Juga ada pilihan untuk menjual ketergantungan pada variabel kompilasi GOOGLE_VENDOR_PIP_DEPENDENCIES, yang menunjukkan direktori dengan artefak yang digunakan kembali tanpa berputar ke instalasi dari merah.

Para dependencias privadas, Artifact Registry dapat membuka paket Anda dan kompilasi menghasilkan kredensial secara otomatis untuk layanan layanan. Jika memerlukan beberapa repositori, Anda dapat mengulangi repositori virtual yang mengontrol perintah resolusi pip. Saat repositori pribadi menggunakan autentikasi SSH, Anda harus menyalin artefak dengan antelasi karena kapasitas build tidak akan menampilkan SSH.

Praktik yang baik yang menghilangkan rasa jijik

Semua proyek itu ada di dalam rumahmu dan mencegah instalasi global; Anda akan mengalami konflik yang mengerikan di seluruh proyek dan mengizinkan penghapusan dan memulihkan lingkungan dengan aman jika terjadi kesalahan.

Ini adalah versi ketika Anda mengumpulkan entorno untuk produksi, baik demo maupun demo. Ya menggunakan persyaratan.txt, Pipfile.lock atau kunci Puisi, tujuannya adalah bahwa peralatan dan layanannya tepat dengan koneksi yang sama dari paket dan subdependensi.

Gunakan arsip kunci yang selalu Anda masuki dan mengetahui bahwa Anda menyertakan hash untuk memverifikasi integritasnya. Jika terdapat perbedaan, selidiki sebelum memperbaruinya.

Otomatiskan kerusakan yang terjadi dan ketergantungan langsung dan transitif ini. Dapatkan informasi berkala tentang penggunaan, lisensi, dan status keamanan Anda akan diprioritaskan untuk diaktualisasikan dengan cabeza.

Elige herramienta según el tamaño dan fases proyek: untuk skrip atau prototipe, pip+venv dengan persyaratan.txt dan sebagainya; untuk produk dengan peralatan pipa, pertimbangkan alat pip, Pipenv o Puisi; si además empaquetas y publicas, Puisi o PDM brillan; dan jika Anda juga perlu mengelola versi Python, Rye menyederhanakan hubungannya.

Jika Anda menggunakan setiap perangkat tanpa mengganggu katalog

pip + venv encaja de maravilla pada proyek-proyek kecil, kerja cepat dan entornos de laboratorio. Añade requirements.txt ketika Anda ingin berbagi atau menghapusnya.

pipanv Ini ideal jika Anda ingin pengalaman terintegrasi dengan lingkungan dan kunci tanpa mengubah secara drastis bentuk pekerjaan Anda. Anda tidak dapat mereproduksi semuanya dari sini.

Puisi Anda dapat melakukannya ketika proyek adalah serangkaian paket: menentukan metadata, memulihkan ketergantungan, membangun artefak, dan mempublikasikan di PyPI. Kunci ini menjamin produksi yang sebenarnya sama dengan yang Anda bawa.

PDM menawarkan pengalaman modern yang diterapkan di pyproject.toml dan, untuk banyak peralatan, adalah alternatif yang sangat baik untuk membuat Puisi dengan keputusan serupa tetapi dengan pedang yang berbeda.

Gandum hitam brill jika Anda ingin melihat versi proyek Python, buatlah sebuah flujo yang koheren dari ekstrim ke ekstrim. Ini terutama berguna ketika berbagai repositori secara linear menafsirkan bagaimana ketergantungan.

Pembaruan, kemunduran, dan kasus-kasus khusus

Planifica cuándo actualizar dan hindari melakukan hal yang sama sebelum serangan kritis; mencoba entorno de staging dengan kunci baru mengurangi sustos. Jika ada yang salah, kunci depan Anda akan diselamatkan untuk mengubah status menjadi stabil.

Jika Anda memerlukan instalasi dari kode yang diunduh, usa la instalación desde Git dengan rama atau etiket yang stabil dan mendokumentasikan karena itu. Saat Anda meluncurkan versi di PyPI, pindahkan ke sana untuk beralih ke carril seperti biasa.

Untuk entornos sin salida a Internet, kompilasi dan almacenar ruedas propias es el sebagai bajo la manga. Buka persyaratan Anda.txt dan temukan con --find-links dan nonaktifkan indeks eksternal con --no-index ketika itu masuk akal.

Oleh karena itu, banyak orang yang yakin akan ketergantungan pada Python dan bagaimana cara menghindarinya

Kombinasi perangkat yang berbeda, kesalahan kebiasaan, dan berbagai pilihan akan menyebabkan kesalahan komunitas: instal secara global, tidak ada versi fijar, gerakan mezclar, atau abaikan grafik transitif. Penerimaan untuk waktu yang lama adalah sebuah strategi dari prinsip dan penulisan dalam README: yang saya gunakan, seperti yang menyatu dengan lingkungan, bagaimana Anda memperbarui dan bagaimana melakukannya.

Kami juga akan memahami perbedaan konseptual antara SemVer dan PEP 440, untuk menafsirkan operator dan mengharapkan kompatibilitas dengan benar. Tidak ada semua perpustakaan yang mengikuti salah satu disiplin ilmu, dan Anda akan menerapkan aturan yang berlaku pada jam penyelesaian akhir.

Administrasi ketergantungan dengan Python tidak diperlukan karena itu adalah suatu masalah dominas lo dasar dari pip dan venv, te apoyas en lock files, Eliges un gestor moderno cuando el proyecto lo pide y jaga keamanan dengan peralatan escaneo. Tanto di lokal seperti di platform cloud seperti MWAA dan Cloud Run, versi fijar, bloquear dan auditar menandai perbedaan antara menghilangkan kepercayaan atau juga mengikuti aturan dalam setiap bangunan.

Pos terkait: