Dalam artikel ini, kami sedang mencari cara yang berbeza untuk memasang kod ke dalam persekitaran maya anda dengan pip.
Ini akan meningkat dalam kerumitan, tetapi jangan risau, saya sentiasa bersedia untuk anda setiap langkah. tepuk belakang anda
Cukup cakap! Mari mulakan dengan sesuatu yang mudah.
Anggap situasi berikut: Anda baru sahaja menyemak repositori dan ingin memasang keperluan.
Ini boleh dilakukan dengan mudah dengan menggunakan arahan berikut ... sudah tentu selepas anda mencipta persekitaran maya:
$ python -m venv (name of virtual environment) $ source (name of virtual environment)/bin/activate $ pip install .
Jika anda tertanya-tanya tentang arahan pemasangan dan ketiadaan requirements.txt, saya ada berita buruk untuk anda. Ia adalah 2024 dan anda tidak perlu lagi menggunakan requirements.txt.
Ini sudah tentu hanya pendapat saya sendiri, tetapi semua repositori yang saya bekerjasama mempunyai pyproject.toml dan saya amat mengesyorkan untuk menggunakan satu dalam setiap projek anda juga. Pengecualian yang berdaya maju mungkin projek kotak pasir dan skrip kecil.
"mengapa" akan tersasar di sini, tetapi izinkan saya memberi anda gambaran sekilas. Ia bukan sahaja membolehkan anda menentukan keperluan anda sendiri. Anda juga boleh menentukan kebergantungan pilihan yang boleh dipasang oleh pengguna jika perlu.
Ini amat berguna untuk alat pembangunan, yang anda tidak mahu dalam aplikasi yang produktif, seperti perpustakaan ujian atau pemformat.
Tetapi ini hanya permulaan senarai ciri. Ia juga merupakan tempat untuk metadata dan membenarkan titik masuk tersuai ke aplikasi anda.
Di sini arahan pemasangan sekali lagi:
$ pip install .
Pastikan anda berada dalam folder tempat pyproject.toml boleh ditemui.
Di sini petua pro, gunakan arahan berikut jika anda berhasrat untuk bekerja pada repositori yang anda pasang
$ pip install -e .
Ini melakukan pemasangan boleh edit yang juga dikenali sebagai "Mod Pembangunan" yang membolehkan anda menguji perubahan kod anda secara berulang tanpa perlu memasang semula projek anda.
Apakah maksudnya?
Adakah pernah berlaku kepada anda bahawa anda menukar kod dalam modul yang anda import, tetapi perubahan itu nampaknya tidak berkuat kuasa?
Cuba pemasangan boleh edit!
Soalan pantas: Apa yang anda lakukan, jika anda mahu memasang versi cawangan tertentu dan bukannya cawangan lalai?
Jawapannya jelas
$ git checkout (branch name)
dan ulangi langkah di atas! Betul tak?
Bodoh, awak baru sahaja mengaktifkan kad perangkap saya!
Lihat, sejak versi 2.23 terdapat kanak-kanak baharu di bandar yang membenarkan penukaran cawangan yang lebih intuitif dan namanya ialah suis git.
git checkout telah ditamatkan sejak itu.
Jadi jangan dedahkan diri anda di hadapan rakan sekerja anda dengan menggunakan alatan yang sudah lapuk. Sebaliknya, lepaskan suis git secara santai pada masa akan datang anda berkongsi skrin anda untuk memberitahu semua orang bahawa anda bermaksud perniagaan.
Tabahkan diri!
Semuanya sehingga kini hanyalah permainan kanak-kanak. Kini tiba masanya untuk beberapa penggunaan pip budak besar.
Lihat, semua orang boleh memasang pakej yang tersedia dalam repositori pakej, tetapi hanya mengetahui cara memasang dari sana bermakna semua emas dalam repositori peribadi akan kekal tidak boleh diakses oleh anda.
Ia juga berguna untuk menguji kod anda sendiri sebelum mengubahnya menjadi pakej.
Jika anda pernah mendapati diri anda berada dalam situasi sedemikian, gunakan arahan ini:
$ pip install git+ssh://git@(your provider)/(owner)/(repo name).git
Di sini contoh tanpa ruang letak, yang mungkin memudahkan pemahaman.
$ pip install git+ssh://git@github.com/pandas-dev/pandas.git
Fakta menyeronokkan: segala-galanya selepas '://' hampir sama dengan arahan ssh yang dihasilkan oleh git. Tetapi perhatikan, bukannya titik bertindih yang digunakan untuk memisahkan 'github.com' dan pemilik 'pandas-dev', garis miring perlu diganti.
Bagaimana jika anda ingin memasang dari cawangan ... atau sebarang rujukan lain untuk perkara itu?
Mudah! Cuma tambahkan @(ref) pada penghujung arahan. Jadi ia boleh kelihatan seperti
$ pip install git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x (branch) $ pip install git+ssh://git@github.com/pandas-dev/pandas.git@v2.2.2 (tag)
Tetapi bagaimana jika ia tidak mencukupi untuk memasang pakej daripada baris arahan? Bagaimana jika saluran paip binaan anda juga harus dipasang dari repositori peribadi?
Diharap, anda bersetuju bahawa menambah penyata pemasangan pip individu pada saluran paip anda adalah di luar persoalan.
Sebaliknya, izinkan saya menunjukkan kepada anda perkara yang perlu ditambahkan pada bahagian dependencies pada pyproject.toml. Anda akan melihat, bahawa ia sangat serupa dengan arahan sebelumnya:
"pandas@git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x",
Dengan tambahan ini, jalankan lagi pip install -e ..
Tahniah! Anda baru sahaja memasang versi lapuk panda ke dalam persekitaran anda. Anda mungkin mahu mengulanginya dengan pakej sebenar yang anda perlukan.
Memandangkan anda kekal dengan saya sehingga ketika ini, saya akan memberikan cadangan alat bonus.
In den letzten Monaten habe ich uv verwendet, einen in Rust geschriebenen Ersatz für pip (neben anderen häufig verwendeten Tools im Python-Ökosystem).
Das größte Verkaufsargument ist, dass es die Erstellung virtueller Umgebungen und die Installation von Paketen erheblich beschleunigt. Vor allem, wenn Sie virtuelle Umgebungen neu erstellen, da Caching verwendet wird. Wir sprechen davon, 10-mal schneller zu sein ... oder sogar 100-mal schneller, wenn der Cache warm ist.
Die Liste der Vorteile ist viel länger, aber auch das ist Thema für einen anderen Artikel. Probieren Sie es also erst einmal aus und danken Sie mir später.
Lassen Sie uns die Sache abschließen.
Das waren alle Methoden, die ich während meiner Arbeit verwendet habe, wenn es um das Zusammenspiel zwischen Git und Pip geht. Es gibt möglicherweise andere Möglichkeiten, Dinge zu installieren, aber diese sollten 99 % der Anwendungsfälle abdecken.
Habe ich deinen Lieblingsbefehlszeilentrick vergessen? Dann teile es in den Kommentaren.
Ich hoffe, Sie haben durch diesen Artikel etwas Neues gelernt und wenn Sie an weiteren technischen Artikeln über Softwareentwicklung interessiert sind, dann denken Sie darüber nach, ihm zu folgen.
Atas ialah kandungan terperinci Apa yang anda perlu tahu tentang cara memasang sesuatu dengan pip. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!