Python adalah alat yang sangat kuat - kami harap Anda sudah merasakannya sendiri. Banyak orang dari seluruh dunia merasakan hal yang sama, dan mereka menggunakan Python secara teratur untuk mengembangkan apa yang mereka bisa lakukan di banyak bidang yang sepenuhnya berbeda. Ini berarti bahwa Python telah menjadi alat antardisiplin yang digunakan dalam banyak aplikasi. Kami tidak dapat melalui semua bidang di mana Python menunjukkan kemampuannya dengan brilian, jadi izinkan kami hanya memberi tahu Anda tentang yang paling mengesankan.
Pertama-tama, Python telah menjadi pemimpin dalam penelitian kecerdasan buatan. Pertambangan data, salah satu disiplin ilmiah modern yang paling menjanjikan, juga menggunakan Python. Matematikawan, psikolog, ahli genetika, ahli meteorologi, ahli bahasa - semua orang ini sudah menggunakan Python, atau jika mereka belum, kami yakin bahwa mereka akan segera melakukannya. Tidak ada cara untuk menghindari tren ini.
Tentu saja, tidak masuk akal untuk membuat semua pengguna Python menulis kode mereka dari awal, menjaga mereka terisolasi dengan sempurna dari dunia luar dan pencapaian programmer lain. Ini akan menjadi tidak alami dan tidak produktif.
Hal yang paling diinginkan dan efisien adalah memungkinkan semua anggota komunitas Python untuk dengan bebas bertukar kode dan pengalaman mereka. Dalam model ini, tidak ada yang dipaksa untuk memulai dari awal, karena ada kemungkinan besar bahwa orang lain telah bekerja pada masalah yang sama (atau sangat mirip).
Seperti yang Anda ketahui, Python dibuat sebagai perangkat lunak sumber terbuka, dan ini juga berfungsi sebagai undangan bagi semua pengkode untuk menjaga seluruh ekosistem Python sebagai lingkungan yang terbuka, ramah, dan gratis. Untuk membuat model ini bekerja dan berkembang, beberapa alat tambahan harus disediakan, alat yang membantu para pembuat untuk mempublikasikan, memelihara, dan merawat kode mereka.
Alat-alat yang sama harus membantu pengguna untuk memanfaatkan kode, baik kode yang sudah ada, maupun kode baru yang muncul setiap hari. Berkat itu, menulis kode baru untuk tantangan baru tidak seperti membangun rumah baru, memulai dari dasar.
Selain itu, programmer bebas untuk memodifikasi kode orang lain untuk menyesuaikannya dengan kebutuhan mereka sendiri, dan pada akhirnya membangun produk yang sepenuhnya baru yang dapat digunakan oleh pengembang lain. Proses ini tampaknya tidak memiliki akhir. Beruntunglah.
Untuk membuat dunia ini berputar, dua entitas dasar harus didirikan dan terus bergerak: repositori terpusat dari semua paket perangkat lunak yang tersedia; dan alat yang memungkinkan pengguna mengakses repositori. Kedua entitas ini sudah ada dan dapat digunakan kapan saja.
Repository (atau repo) yang kami sebutkan sebelumnya bernama PyPI (singkatan dari Python Package Index) dan dikelola oleh sebuah kelompok kerja bernama Packaging Working Group, sebagai bagian dari Python Software Foundation. Tugas utama mereka adalah untuk mendukung para pengembang Python dalam penyebaran kode yang efisien.
Anda dapat menemukan situs web mereka di sini:
https://wiki.python.org/psf/PackagingWG.
Situs web PyPI (dikelola oleh PWG) terletak di alamat:
https://pypi.org/.
Ketika kami mengunjungi situs tersebut pada awal Juni 2020, kami menemukan bahwa PyPI menjadi rumah bagi 237.515 proyek, yang terdiri dari 2.877.545 file yang dikelola oleh 427.487 pengguna.
Tiga angka ini saja sudah menunjukkan potensi komunitas Python dan pentingnya kerja sama para pengembang.
Kita harus mencatat bahwa PyPI bukanlah satu-satunya repositori Python yang ada. Sebaliknya, ada banyak repositori lainnya yang dibuat untuk proyek-proyek dan dipimpin oleh banyak komunitas Python yang lebih besar dan kecil. Kemungkinan suatu saat nanti Anda dan rekan-rekan Anda ingin membuat repositori sendiri.
Bagaimanapun, PyPI adalah repositori Python yang paling penting di dunia. Jika kita sedikit mengubah peribahasa klasik, kita dapat menyatakan bahwa "semua jalan Python menuju PyPI", dan itu bukanlah suatu keberlebihan sama sekali.
Repo PyPI terkadang disebut sebagai Toko Keju. Sungguh.
Apakah terdengar sedikit aneh bagi Anda? Jangan khawatir, semuanya sepenuhnya tidak bersalah.
Kami menyebut repo sebagai toko, karena Anda pergi ke sana untuk alasan yang sama seperti pergi ke toko lain: untuk memenuhi kebutuhan Anda. Jika Anda ingin beberapa keju, Anda pergi ke toko keju. Jika Anda ingin sebuah perangkat lunak, Anda pergi ke toko perangkat lunak. Untungnya, analogi berakhir di sini - Anda tidak perlu uang untuk mengambil beberapa perangkat lunak dari toko repo.
PyPI sepenuhnya gratis, dan Anda bisa memilih kode dan menggunakannya - Anda tidak akan bertemu kasir atau penjaga keamanan. Tentu saja, ini tidak membebaskan Anda dari sopan dan jujur. Anda harus mematuhi semua persyaratan lisensi, jadi jangan lupa untuk membacanya.
“Baiklah”, kata Anda, “toko sudah jelas sekarang, tetapi apa hubungan keju dengan Python?”
Toko Keju adalah salah satu sketsa Monty Python yang paling terkenal. Ini menggambarkan petualangan surrealistik seorang Inggris yang mencoba membeli beberapa keju. Sayangnya, toko yang ia kunjungi (yang dinamakan Ye National Cheese Emporium yang sombong) sama sekali tidak memiliki keju yang tersedia.
Tentu saja, ini dimaksudkan sebagai ironi. Seperti yang sudah Anda ketahui, PyPI memiliki banyak perangkat lunak yang tersedia dan tersedia 24/7. Ia sepenuhnya berhak mengidentifikasi dirinya sebagai Ye International Python Software Emporium.
PyPI adalah toko yang sangat spesifik, bukan hanya karena menawarkan semua produknya secara gratis. Ini juga memerlukan alat khusus untuk menggunakannya.
Untungnya, alat ini juga gratis, jadi jika Anda ingin membuat burger digital Anda sendiri dengan menggunakan barang yang ditawarkan oleh Toko PyPI, Anda akan membutuhkan alat gratis bernama pip.
Tidak, Anda tidak salah dengar. Hanya pip. Ini adalah akronim lain, tentu saja, tetapi sifatnya lebih kompleks dari PyPI yang disebutkan sebelumnya, karena ini adalah contoh akronim rekursif, yang berarti bahwa akronim merujuk pada dirinya sendiri, yang berarti menjelaskannya adalah proses yang tak terbatas.
Mengapa? Karena pip berarti "pip installs packages", dan pip di dalam "pip installs packages" berarti "pip installs packages" dan...
Mari berhenti di sana. Terima kasih atas kerjasamanya.
Ngomong-ngomong, ada beberapa akronim rekursif yang sangat terkenal. Salah satunya adalah Linux, yang dapat diartikan sebagai "Linux is Not Unix".
Pertanyaan yang seharusnya diajukan sekarang adalah: bagaimana cara mendapatkan pisau keju yang tepat? Dengan kata lain, bagaimana memastikan bahwa pip terinstal dan siap digunakan?
Jawaban yang paling tepat adalah "tergantung". Benar-benar.
Beberapa instalasi Python dilengkapi dengan pip, beberapa tidak. Selain itu, tidak hanya tergantung pada sistem operasi yang Anda gunakan, meskipun ini adalah faktor yang sangat penting.
Distribusi Linux yang berbeda dapat berperilaku berbeda dalam penggunaan pip. Beberapa di antaranya (seperti Gentoo), yang erat terikat dengan Python dan menggunakan Python secara internal, mungkin sudah memiliki pip terpasang dan siap digunakan.
Jangan lupa bahwa beberapa distribusi Linux dapat menggunakan lebih dari satu versi Python secara bersamaan, misalnya satu Python 2 dan satu Python 3 yang berdampingan. Sistem seperti ini dapat meluncurkan Python 2 sebagai versi default, sehingga perlu secara eksplisit menentukan nama program sebagai python3. Dalam hal ini, mungkin ada dua pips yang berbeda yang diidentifikasi sebagai pip (atau pip2) dan pip3. Periksa dengan teliti.
Buka jendela terminal dan masukkan perintah berikut:
Jawaban yang mirip dengan yang ditunjukkan pada gambar sebelumnya menunjukkan bahwa Anda telah menjalankan pip dari Python 2, sehingga percobaan selanjutnya harus terlihat seperti berikut:
Seperti yang dapat Anda lihat, kami sekarang yakin bahwa kami menggunakan versi pip yang sesuai.
Sekarang bahwa kita yakin bahwa pip siap untuk digunakan, kita akan membatasi fokus kita pada MS Windows saja, karena perilakunya (seharusnya) sama di semua sistem operasi, tetapi sebelum kita memulai, kita perlu menjelaskan isu penting dan memberi tahu Anda tentang dependencies.
Bayangkan Anda telah membuat aplikasi Python brilian bernama redsuspenders, yang mampu memprediksi tingkat bursa saham dengan akurasi 99% (by the way, jika Anda benar-benar melakukannya, silakan hubungi kami segera).
Tentu saja, Anda telah menggunakan beberapa kode yang sudah ada untuk mencapai tujuan ini - misalnya, aplikasi Anda mengimpor paket bernama nyse yang berisi beberapa fungsi dan kelas penting. Selain itu, paket nyse mengimpor paket lain bernama wallstreet, sementara paket wallstreet mengimpor dua paket penting lainnya bernama bull dan bear.
Seperti yang mungkin sudah Anda tebak, hubungan antara paket-paket ini sangat penting, dan jika seseorang memutuskan untuk menggunakan kode Anda (tetapi ingat, kita sudah mengklaimnya), mereka juga harus memastikan bahwa semua paket yang diperlukan telah terpasang.
Singkatnya, kita dapat mengatakan bahwa dependencies adalah fenomena yang muncul setiap kali Anda akan menggunakan sebuah perangkat lunak yang bergantung pada perangkat lunak lainnya. Perlu dicatat bahwa ketergantungan mungkin mencakup (dan umumnya mencakup) lebih dari satu tingkat pengembangan perangkat lunak.
Apakah ini berarti pengguna potensial paket nyse harus melacak semua ketergantungan dan secara manual menginstal semua paket yang dibutuhkan? Itu akan sangat mengerikan, bukan?
Ya, itu benar-benar mengerikan, jadi Anda tidak perlu kaget bahwa proses pemenuhan semua persyaratan berikutnya memiliki nama sendiri, dan disebut sebagai "neraka ketergantungan" atau "dependency hell".
Bagaimana kita mengatasi itu? Apakah setiap pengguna terjebak untuk mengunjungi neraka hanya untuk menjalankan kode untuk pertama kalinya?
Untungnya tidak - pip dapat melakukan semua ini untuk Anda. Sungguh. Pip dapat menemukan, mengidentifikasi, dan menyelesaikan semua ketergantungan. Selain itu, pip dapat melakukannya dengan cara yang paling cerdas, menghindari unduhan dan reinstall yang tidak perlu.
Sekarang kita siap untuk menanyakan apa yang bisa dilakukan oleh pip. Mari kita lakukan - keluarkan perintah berikut:
dan tunggu respon dari pip. Inilah tampilannya:
Jangan lupa bahwa Anda mungkin harus mengganti pip dengan pip3 jika lingkungan Anda memerlukan hal tersebut.
Daftar yang dihasilkan oleh pip merangkum semua operasi yang tersedia, dan yang terakhir adalah bantuan (help), yang sudah kita gunakan sebelumnya.
Jika Anda ingin mengetahui lebih lanjut tentang salah satu operasi yang terdaftar, Anda dapat menggunakan bentuk panggilan pip berikut:
Contohnya, baris:
Akan menunjukkan informasi rinci tentang penggunaan dan parameterisasi perintah instalasi.
Jika Anda ingin mengetahui paket Python apa yang telah diinstal sejauh ini, Anda dapat menggunakan operasi daftar - seperti ini:
Keluaran yang akan Anda lihat cukup tidak dapat diprediksi. Jangan terkejut jika layar Anda akhirnya diisi dengan konten yang benar-benar berbeda. Milik kami terlihat seperti berikut:
Seperti yang dapat Anda lihat, ada dua kolom dalam daftar tersebut, satu menunjukkan nama paket yang terpasang, dan kolom lain menunjukkan versi paket. Kami tidak bisa memprediksi keadaan instalasi Python Anda.
Satu-satunya hal yang kami tahu pasti adalah bahwa daftar Anda berisi dua baris yang kami lihat pada daftar kami: pip dan setuptools. Ini terjadi karena sistem operasi yakin bahwa pengguna yang ingin menggunakan pip kemungkinan besar akan membutuhkan setuptools segera. Itu tidak salah.
Daftar pip tidak begitu informatif, dan mungkin terjadi bahwa itu tidak akan memuaskan rasa ingin tahu Anda. Untungnya, ada perintah yang dapat memberi tahu Anda lebih banyak tentang paket yang terpasang (perhatikan kata terpasang). Sintaks perintahnya terlihat sebagai berikut:
Kami akan menggunakannya dengan sedikit cara yang menyesatkan - kami ingin meyakinkan pip untuk mengakui sesuatu tentang dirinya sendiri. Ini adalah cara kami melakukannya:
Terlihat sedikit aneh, bukan? Namun, meskipun begitu, program ini berfungsi dengan baik, dan presentasi diri pip terlihat konsisten dan terbaru:
Anda mungkin bertanya dari mana data ini berasal? Apakah pip benar-benar begitu peka? Tidak sama sekali - informasi yang muncul di layar diambil dari dalam paket yang ditunjukkan. Dengan kata lain, pencipta paket memiliki kewajiban untuk melengkapinya dengan semua data yang diperlukan (atau lebih tepatnya - metadata).
Perhatikan dua baris di bagian bawah output. Mereka menunjukkan:
paket apa yang diperlukan untuk berhasil menggunakan paket (Requires:)
paket apa yang memerlukan paket untuk berhasil digunakan (Required-by:)
Seperti yang dapat Anda lihat, kedua properti tersebut kosong. Silakan coba gunakan perintah show terkait paket lain yang telah terpasang.
Kehebatan pip berasal dari fakta bahwa sebenarnya itu adalah gerbang ke dunia perangkat lunak Python. Berkat itu, Anda dapat menelusuri dan menginstal salah satu dari ratusan paket siap pakai yang dikumpulkan di repositori PyPI. Jangan lupa bahwa pip tidak dapat menyimpan semua konten PyPI secara lokal (tidak perlu dan akan tidak ekonomis).
Pada dasarnya, pip menggunakan Internet untuk meminta PyPI dan mengunduh data yang diperlukan. Ini berarti bahwa Anda harus memiliki koneksi jaringan yang berfungsi setiap kali Anda akan meminta pip untuk segala sesuatu yang mungkin melibatkan interaksi langsung dengan infrastruktur PyPI.
Salah satu dari kasus ini terjadi ketika Anda ingin mencari melalui PyPI untuk menemukan paket yang diinginkan. Jenis pencarian ini dimulai dengan perintah berikut:
Teks "anystring" yang Anda berikan akan dicari di:
Nama semua paket
Ringkasan string dari semua paket
Perlu diketahui bahwa beberapa pencarian mungkin menghasilkan banyak data, jadi usahakan se-spesifik mungkin. Sebagai contoh, sebuah permintaan yang terlihat tidak berbahaya seperti ini:
Menghasilkan lebih dari 100 baris hasil (cobalah sendiri - jangan hanya mengandalkan kata-kata kami). Sekedar informasi - pencarian tidak memperhatikan huruf besar atau kecil.
Jika Anda tidak suka membaca di konsol, Anda dapat menggunakan cara alternatif untuk menjelajahi konten PyPI yang ditawarkan oleh mesin pencari, yang tersedia di https://pypi.org/search.
Mengasumsikan bahwa pencarian Anda berhasil (atau Anda bertekad untuk menginstal paket tertentu yang sudah dikenal), Anda dapat menggunakan pip untuk menginstal paket ke komputer Anda.
Ada dua skenario yang mungkin dilakukan sekarang:
Anda ingin menginstal paket baru hanya untuk Anda sendiri - paket tersebut tidak akan tersedia untuk pengguna (akun) lain yang ada di komputer Anda; prosedur ini adalah satu-satunya yang tersedia jika Anda tidak dapat meningkatkan izin Anda dan bertindak sebagai administrator sistem;
Anda telah memutuskan untuk menginstal paket baru di seluruh sistem - Anda memiliki hak administratif dan tidak takut untuk menggunakannya.
Untuk membedakan antara dua tindakan ini, pip menggunakan opsi khusus yang disebut --user (perhatikan tanda strip ganda). Keberadaan opsi ini menginstruksikan pip untuk bertindak secara lokal atas nama pengguna Anda (non-administratif).
Jika Anda tidak menambahkan ini, pip menganggap bahwa Anda sebagai administrator sistem dan tidak akan melakukan apa-apa untuk memperbaiki Anda jika Anda tidak.
Dalam kasus kami, kami akan menginstal paket bernama pygame - ini adalah perpustakaan yang diperluas dan kompleks yang memungkinkan programmer untuk mengembangkan game komputer menggunakan Python.
Proyek ini telah dalam pengembangan sejak tahun 2000, sehingga merupakan kode yang matang dan dapat diandalkan. Jika Anda ingin tahu lebih banyak tentang proyek dan komunitas yang memimpinnya, kunjungi https://www.pygame.org.
Jika Anda adalah administrator sistem, Anda dapat menginstal pygame menggunakan perintah berikut:
Jika Anda bukan seorang admin, atau Anda tidak ingin memperbesar ukuran sistem operasi Anda dengan menginstal pygame secara sistem-wide, Anda dapat menginstalnya hanya untuk Anda sendiri:
Pilihan berada pada dirimu untuk memilih prosedur di atas yang ingin dilakukan.
Pip memiliki kebiasaan menampilkan animasi teks yang indah untuk menunjukkan kemajuan instalasi, jadi perhatikan layar dengan baik - jangan lewatkan pertunjukannya! Jika proses berhasil, Anda akan melihat sesuatu seperti ini:
Kami mendorong Anda untuk menggunakannya:
dan
Untuk mendapatkan informasi lebih lanjut tentang apa yang sebenarnya terjadi.
Sekarang bahwa pygame akhirnya dapat diakses, kita dapat mencoba menggunakannya dalam program tes yang sangat sederhana. Mari kita komentari singkat.
baris 1: mengimpor pygame dan membiarkannya melayani kita;
baris 3: program akan berjalan selama variabel run bernilai True;
baris 4 dan 5: menentukan ukuran jendela;
baris 6: menginisialisasi lingkungan pygame;
baris 7: menyiapkan jendela aplikasi dan mengatur ukurannya;
baris 8: membuat objek yang mewakili font default dengan ukuran 48 poin;
baris 9: membuat objek yang mewakili teks tertentu - teks akan diasamakan (True) dan putih (255,255,255)
baris 10: memasukkan teks ke dalam buffer layar (saat ini tidak terlihat);
baris 11: membalikkan buffer layar untuk membuat teks terlihat;
baris 12: loop utama pygame dimulai di sini;
baris 13: mendapatkan daftar semua acara pygame yang tertunda;
baris 14 hingga 16: memeriksa apakah pengguna telah menutup jendela atau mengklik di dalamnya atau menekan tombol apa pun;
baris 15: jika ya, hentikan mengeksekusi kode.
Ini yang kami harapkan dari kode impresif kami:
Pip install memiliki dua kemampuan tambahan penting:
Pertama, ia mampu memperbarui paket yang telah diinstal secara lokal - contohnya, jika Anda ingin memastikan bahwa Anda menggunakan versi terbaru dari paket tertentu, Anda dapat menjalankan perintah berikut:
where -U berarti memperbarui. Catatan: bentuk perintah ini menggunakan opsi --user untuk tujuan yang sama seperti yang disajikan sebelumnya;
Ini dapat menginstal versi paket yang dipilih oleh pengguna (pip secara default menginstal versi terbaru yang tersedia); untuk mencapai tujuan ini, Anda harus menggunakan sintaks berikut:
"double equals sign" dapat diterjemahkan ke dalam bahasa Indonesia sebagai "tanda sama dengan ganda".
Jika ada paket yang saat ini terpasang dan tidak lagi diperlukan serta Anda ingin menghapusnya, pip akan berguna juga. Perintah uninstall-nya akan mengeksekusi semua langkah yang diperlukan.
Syntax yang diperlukan jelas dan sederhana:
Jadi jika Anda tidak ingin menggunakan pygame lagi, Anda dapat mengeksekusi perintah berikut:
Pip akan ingin tahu apakah Anda yakin tentang pilihan yang sedang Anda buat - bersiaplah untuk memberikan jawaban yang tepat.
Prosesnya terlihat seperti ini:
Kemampuan pip tidak berakhir di sini, tetapi set perintah yang kami sajikan sudah cukup untuk memulai mengelola paket secara sukses yang bukan bagian dari instalasi Python reguler.
Kami berharap telah mendorong Anda untuk melakukan eksperimen Anda sendiri dengan pip dan alam semesta paket Python. PyPI mengundang Anda untuk menjelajahi sumber daya yang luas.
Beberapa mengatakan bahwa salah satu kebajikan pemrograman yang paling penting adalah kemalasan. Jangan salah paham - kami tidak ingin Anda menghabiskan sepanjang hari tidur di sofa dan bermimpi tentang kode Python.
Seorang programmer yang malas adalah programmer yang mencari solusi yang sudah ada dan menganalisis kode yang tersedia sebelum mereka mulai mengembangkan perangkat lunak mereka sendiri dari awal.
Ini sebabnya PyPI dan pip ada - gunakanlah!
1. Ada repositori (atau repo untuk singkatannya) yang dirancang untuk mengumpulkan dan berbagi kode Python gratis yang bernama Python Package Index (PyPI), meskipun mungkin Anda juga akan menemukan nama yang sangat spesifik yaitu The Cheese Shop. Situs web toko ini tersedia di https://pypi.org/.
2. Untuk menggunakan The Cheese Shop, telah dibuat alat khusus dan namanya adalah pip (pip menginstal paket sementara pip singkatan dari ... ok, jangan perdulikan). Karena pip mungkin tidak diterapkan sebagai bagian dari instalasi Python standar, mungkin Anda perlu menginstalnya secara manual. Pip adalah alat konsol.
3. Untuk memeriksa versi pip, salah satu dari perintah berikut harus diberikan:
atau
Periksa sendiri mana yang cocok untuk Anda di lingkungan OS Anda.
4. Daftar kegiatan utama pip terlihat sebagai berikut:
pip help operation - menampilkan deskripsi singkat tentang pip;
pip list - menampilkan daftar paket yang saat ini terpasang;
pip show package_name - menampilkan informasi package_name termasuk dependensi paket;
pip search anystring - mencari melalui direktori PyPI untuk menemukan paket yang namanya mengandung anystring;
pip install name - menginstal name ke seluruh sistem (harap perhatikan masalah yang mungkin timbul jika tidak memiliki hak administrasi);
pip install --user name - menginstal name hanya untuk Anda; tidak ada pengguna platform Anda yang lain yang akan dapat menggunakannya;
pip install -U name - memperbarui paket yang telah diinstal sebelumnya;
pip uninstall name - menghapus paket yang telah diinstal sebelumnya;