Teman-teman, selamat malam! Kami memiliki kabar baik, membuka rekrutmen dalam grup baru di jalur
"Pengembang Python" . Grup ini sudah dimulai pada awal Juli, dan sekarang, sesuai dengan tradisi yang sudah ada, kami membagikan terjemahan yang bermanfaat yang disiapkan untuk siswa dalam kursus ini.

Ketika Anda baru mulai belajar Python, seseorang memberi tahu Anda bahwa Anda dapat menambahkan folder sumber Anda ke variabel lingkungan
PYTHONPATH dan kemudian Anda dapat mengimpor kode Anda dari direktori lain. Sangat sering penjelajah lupa mengatakan bahwa dalam kebanyakan kasus ini adalah ide yang buruk. Beberapa orang menemukan ini di Internet, yang lain hanya memahaminya langsung. Tetapi terlalu banyak orang (terutama programmer yang tidak berpengalaman) berpikir bahwa tidak ada alternatif lain.
Artikel ini terutama untuk mereka, karena walaupun Anda tahu ada alternatif, tidak selalu mudah untuk menerimanya dan mulai menggunakannya. Piranti Python membingungkan karena mereka banyak perangkat lunak yang dibangun di atas satu sama lain, dengan banyak tumpang tindih dan masalah yang dihasilkan dari ini. Tidak mudah untuk memahami cara menggunakan alat-alat ini dengan benar dalam proyek Anda.
Untuk alasan ini, saya memutuskan untuk menulis artikel ini dan mempertimbangkan alat paling populer di dalamnya, untuk mencari tahu kapan dan di mana mereka digunakan dan tugas apa yang mereka selesaikan. Saya akan mencoba menjelaskan dengan jari bagaimana menggunakan masing-masing alat ini. Jika alat ada di daftar ini, maka Anda, sebagai pythonist, setidaknya perlu tahu tentang keberadaannya. Saya hanya akan berbicara tentang alat-alat yang dapat diterapkan pada proyek atau alur kerja apa pun, dan Anda harus mengingatnya saat memulai proyek baru. Namun, ini tidak berarti bahwa Anda harus menggunakan semua alat yang disajikan dalam setiap proyek Anda. Tidak perlu membebani proyek dengan alat, dalam beberapa kasus ini dapat mempersulit dukungannya.
Alat dasar
Setuptools
Setuptools adalah cara standar untuk membuat paket dengan Python. Dia bekerja di mana saja dan melakukan pekerjaannya dengan baik.
Mengapa : membuat file telur, zip atau roda dari sumber, mendefinisikan metadata untuk proyek Anda, pekerjaan terstruktur dan terstandarisasi bersama pada kode.
Saat digunakan : Selalu ketika Anda menulis kode yang harus dijalankan di mesin orang lain.
Alternatif : Puisi, Flit
virtualenv
Virtualenv adalah manajer lingkungan virtual. Kotak pasir semacam itu adalah python yang berdiri sendiri dengan paket spesifik yang telah diinstal sebelumnya. Menggunakan virtualenv berarti Anda tidak perlu menginstal paket pada sistem python secara default.
Mengapa : pemisahan dependensi, dukungan untuk berbagai versi python oleh satu sistem, relokasi dependensi mudah.
Ketika digunakan : Anda perlu menulis kode, dan untuk ini Anda memerlukan versi python yang berbeda dari versi sistem python default Anda.
Alternatif : Docker atau yang serupa.
Pip
Pip adalah manajer paket yang paling umum di python. Ini memungkinkan Anda untuk menginstal paket lokal atau jarak jauh di lingkungan virtual Anda atau sistem Python.
Untuk apa : menginstal dan menghapus paket, lacak versi paket yang Anda gunakan.
Saat digunakan : Selalu.
Alternatif : Puisi, Conda
Pembuatan dan distribusi paket
Untuk melihat lebih dekat, python.org memiliki halaman terpisah: packaging.python.org
distutils
distutils adalah cikal bakal setuptools. Yang terakhir aktif menggunakan fungsi distutils, jadi sering kali perlu berinteraksi dengan alat ini. Distutils bukanlah alat yang seharusnya Anda miliki di gudang senjata Anda, tetapi Anda harus tahu bagaimana itu cocok dengan gambaran besarnya.
Pypi
Pypi atau Python Package Index adalah repositori besar yang berisi semua modul Python favorit Anda. Sebagai contoh, pip yang sama mengambil paket build dari sana.
Mengapa : Untuk mempublikasikan kode Anda.
Saat digunakan : Ketika ada paket yang ingin Anda tampilkan ke komunitas.
Pypiserver
Pypiserver adalah salah satu implementasi dari API Indeks Paket yang digunakan oleh Pypi. Anda dapat membuat repositori Anda sendiri, misalnya, untuk seluruh perusahaan Anda dan menerbitkan paket tanpa membuat rilis publik.
Mengapa : Buat repositori Anda sendiri di dalam organisasi.
Saat digunakan : Ketika kode Anda tidak perlu publisitas, tetapi kontrol penuh diperlukan untuk itu.
Alternatif : Gudang (digunakan oleh Pypi), djangopypi
Puisi
Puisi adalah sistem manajemen paket alternatif yang menggantikan setuptools, pip, dan beberapa alat lain yang dibangun atas dasar mereka. Ini adalah upaya untuk mendefinisikan ulang sepenuhnya bagaimana sistem paket bekerja dengan Python. Sampai saat ini, puisi memiliki banyak ulasan positif, tetapi bukan alat yang paling umum.
Mengapa : memproses dan mendistribusikan paket, mengelola dependensi, mencegah masalah dengan menyelesaikan dependensi.
Kapan harus menggunakan : Ketika Anda merencanakan proyek baru dan Anda tidak takut untuk menggunakan alat yang sangat khusus.
Alternatif : Pipenv
Pipenv
Pipenv , seperti Puisi, adalah alat untuk menyusun dependensi dan mengkonfigurasi proyek Python dengan cara yang lebih waras. Dengan Pipfile, ia mengelola dependensi proyek Anda dan memastikan konsistensi dan kemudahan penggunaan.
Mengapa : pemrosesan dan distribusi paket, manajemen ketergantungan.
Saat digunakan : Anda memerlukan alat seperti Puisi yang akan menyebabkan lebih sedikit pertanyaan.
Alternatif : Puisi.
Dokumentasi
Sphinx
Sphinx adalah alat untuk membuat dokumentasi. Awalnya dibuat untuk menangani dokumentasi Python, tetapi telah menjadi alat umum. Ini adalah opsi paling umum untuk proyek Python.
Mengapa : membuat dokumen PDF atau HTML menggunakan bahasa markup dari sumber reStructuredText.
Saat digunakan : Saat proyek, API, atau kode Anda memerlukan dokumentasi eksternal.
Alternatif : Docutils, Doxygen
autodoc
autodoc adalah ekstensi mendasar untuk Sphinx yang memungkinkan Anda membuat file reStructuredText dari kode sumber Python dengan tanda tangan untuk setiap kelas, fungsi, modul, dan sebagainya.
Mengapa : Mendokumentasikan kode atau API Anda.
Saat digunakan : Faktanya, setiap kali Anda menggunakan Sphinx.
Alternatif : ringkasan otomatis
Pengujian
py.test
py.test - menurut saya, adalah paket terbaik untuk pengujian dengan Python. Ini memiliki banyak fungsi, meskipun tidak semuanya dibuka dengan benar, sehingga akan membutuhkan waktu untuk mencari semua kemungkinan yang disediakan py.test.
Mengapa : menguji kode Anda.
Saat digunakan : Selalu ketika Anda terlalu malas untuk menguji secara manual.
Alternatif : unittest, hidung
Hipotesis
Hipotesis adalah alat untuk menguji sifat individu. Singkatnya, ini menghasilkan skrip pengujian acak sesuai dengan spesifikasi Anda sampai menemukan skenario di mana pengujian gagal. Luangkan waktu untuk mempelajari prinsip-prinsip sebelum Anda mulai menggunakan alat ini.
Mengapa : pengujian kode, terutama pemrosesan data.
Kapan menggunakan : Kapan Anda perlu menguji logika non-sepele dengan berbagai nilai input (angka, string, data terstruktur).
racun
tox adalah manajer lingkungan virtual untuk pengujian. Ini berarti Anda dapat mengonfigurasinya untuk menjalankan tes di lingkungan virtual yang bersih dan dapat disesuaikan untuk memastikan bahwa kode Anda dapat bekerja dalam berbagai kondisi.
Mengapa : untuk kode yang harus dijalankan dalam berbagai kondisi dan lingkungan. Juga bermanfaat untuk CI.
Kapan harus digunakan : Ketika Anda membutuhkan kode Anda untuk didukung oleh berbagai versi Python, jalankan di lingkungan yang berbeda dan pada sistem operasi yang berbeda.
Alternatif : skrip bash, saluran pipa CI
Alat lainnya
Pyenv
pyenv adalah pengelola versi python. Ini bertujuan untuk menyederhanakan alur kerja lokal pengembang ketika bekerja dengan beberapa versi.
Mengapa : meluncurkan berbagai proyek dengan versi Python yang berbeda.
Saat digunakan : Anda harus bekerja dengan versi global Python dan Anda punya banyak.
Alternatif : manajemen manual, virtualenv, Puisi, Pipenv
PyScaffold
PyScaffold adalah alat untuk menginisialisasi struktur proyek dengan cara yang terstandarisasi dan menyediakan beberapa alat yang tercantum di atas tanpa harus mengonfigurasinya secara manual. Sangat fleksibel.
Mengapa : untuk memuat proyek, bekerja dengan beberapa proyek dengan alat dan struktur yang sama.
Saat digunakan : selalu (jika Anda terbiasa dengan alat ini, tetapi jangan mencoba menggunakannya untuk pertama kali saat Anda sedang terburu-buru)
Alternatif : python-project-template, Cookiecutter
serpihan8
flake8 adalah salah satu linter terpopuler untuk Python. Ini menjalankan berbagai skrip untuk memverifikasi bahwa kode Anda cocok dengan persyaratan Panduan Gaya Python (
PEP-8 ).
Untuk apa : memeriksa proyek Anda untuk gaya penulisan yang bagus.
Saat digunakan : setiap kali proyek Anda harus dibaca oleh seseorang atau Anda.
Alternatif : pylint
Hitam
Hitam secara otomatis memformat kode. Ini berarti bahwa alih-alih hanya memeriksa kode Anda untuk kepatuhan terhadap standar, Black akan secara independen mengubahnya agar sesuai.
Mengapa : pemformatan kode otomatis.
Saat digunakan : Ketika Anda tidak memiliki masalah menolak untuk mengelola kode secara manual.
Alternatif : autopep8, yapf
Itu saja. Menunggu komentar Anda ;-).