Dokumentasi : https://pipx.pypa.io
Kode Sumber : https://github.com/pypa/pipx
Untuk perbandingan dengan alat lain termasuk PIPSI, lihat perbandingan dengan alat lain.
Peringatan
Tidak disarankan untuk memasang pipx
melalui pipx
. Jika Anda ingin melakukan ini, lihatlah proyek pipx-in-pipx
dan baca tentang keterbatasan di sana.
brew install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Tingkatkan PIPX dengan brew update && brew upgrade pipx
.
sudo apt update
sudo apt install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo dnf install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo pacman -S python-pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
pip
pada distribusi lain: python3 -m pip install --user pipx
python3 -m pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Upgrade PIPX dengan python3 -m pip install --user --upgrade pipx
.
scoop install pipx
pipx ensurepath
Tingkatkan PIPX dengan scoop update pipx
.
# If you installed python using Microsoft Store, replace `py` with `python3` in the next line.
py -m pip install --user pipx
Mungkin (bahkan kemungkinan besar) selesai di atas dengan peringatan yang terlihat mirip dengan ini:
WARNING: The script pipx.exe is installed in `<USER folder>AppDataRoamingPythonPython3xScripts` which is not on PATH
Jika demikian, buka folder yang disebutkan, memungkinkan Anda untuk menjalankan PIPX secara langsung. Masukkan baris berikut (bahkan jika Anda tidak mendapatkan peringatan):
.pipx.exe ensurepath
Ini akan menambahkan jalur yang disebutkan di atas dan %USERPROFILE%.localbin
folder ke jalur pencarian Anda. Mulai ulang sesi terminal Anda dan verifikasi pipx
tidak berjalan.
Upgrade PIPX dengan py -m pip install --user --upgrade pipx
.
Anda juga dapat menggunakan PIPX tanpa menginstalnya. Zipapp dapat diunduh dari rilis GitHub dan Anda dapat memohonnya dengan interpreter Python 3.8+:
python pipx.pyz ensurepath
PIPX memiliki dukungan pra-komit.
Penyelesaian shell tersedia dengan mengikuti instruksi yang dicetak dengan perintah ini:
pipx completions
Untuk detail lebih lanjut, lihat instruksi instalasi.
pipx
? PIPX adalah alat untuk membantu Anda menginstal dan menjalankan aplikasi pengguna akhir yang ditulis dalam Python. Ini kira -kira mirip dengan brew
MacOS, NPX Javascript, dan Linux's apt
.
Itu terkait erat dengan PIP. Faktanya, menggunakan PIP, tetapi difokuskan pada pemasangan dan mengelola paket Python yang dapat dijalankan dari baris perintah secara langsung sebagai aplikasi.
PIP adalah penginstal paket tujuan umum untuk perpustakaan dan aplikasi tanpa isolasi lingkungan. PIPX dibuat khusus untuk pemasangan aplikasi, karena menambahkan isolasi namun tetap membuat aplikasi tersedia di shell Anda: PIPX menciptakan lingkungan yang terisolasi untuk setiap aplikasi dan paket yang terkait.
PIPX tidak mengirim dengan PIP, tetapi memasangnya seringkali merupakan bagian penting dari bootstrap sistem Anda.
pipx
menginstal aplikasi?Secara default, PIPX menggunakan indeks paket yang sama dengan PIP, PYPI. PIPX juga dapat memasang dari semua sumber lain yang dapat, seperti direktori lokal, roda, url git, dll.
Python dan PYPI memungkinkan pengembang untuk mendistribusikan kode dengan "titik masuk skrip konsol". Poin masuk ini memungkinkan pengguna memanggil ke kode Python dari baris perintah, secara efektif bertindak seperti aplikasi mandiri.
PIPX adalah alat untuk menginstal dan menjalankan salah satu dari ribuan paket yang mengandung aplikasi ini dengan cara yang aman, nyaman, dan andal. Di satu sisi, mengubah Python Package Index (PYPI) menjadi toko aplikasi besar untuk aplikasi Python. Tidak semua paket Python memiliki titik masuk, tetapi banyak yang melakukannya.
Jika Anda ingin membuat paket Anda kompatibel dengan PIPX, yang perlu Anda lakukan adalah menambahkan titik masuk skrip konsol. Jika Anda adalah pengguna puisi, gunakan instruksi ini. Atau, jika Anda menggunakan Hatch, coba ini.
pipx
memungkinkan Anda untuk melakukannya
install
. Ini menjamin tidak ada konflik ketergantungan dan membersihkan penghapusan!run
Yang terbaik dari semuanya, PIPX berjalan dengan izin pengguna biasa, tidak pernah menelepon sudo pip install
(Anda tidak melakukan itu, bukan??).
pipx
Anda dapat menginstal aplikasi secara global dengan menjalankan
pipx install PACKAGE
Ini secara otomatis menciptakan lingkungan virtual, menginstal paket, dan menambahkan aplikasi terkait paket (titik masuk) ke lokasi di PATH
Anda. Misalnya, pipx install pycowsay
membuat perintah pycowsay
tersedia secara global, tetapi kotak pasir paket pycowsay di lingkungan virtualnya sendiri. PIPX tidak perlu menjalankan sebagai sudo untuk melakukan ini.
Contoh:
>> pipx install pycowsay
installed package pycowsay 2.0.3, Python 3.10.3
These apps are now globally available
- pycowsay
done! ?
>> pipx list
venvs are in /home/user/.local/share/pipx/venvs
apps are exposed on your $PATH at /home/user/.local/bin
package pycowsay 2.0.3, Python 3.10.3
- pycowsay
# Now you can run pycowsay from anywhere
>> pycowsay mooo
____
< mooo >
====
^__^
(oo)_______
(__) )/
||----w |
|| ||
Anda juga dapat menginstal dari repositori git. Di sini, black
digunakan sebagai contoh.
pipx install git+https://github.com/psf/black.git
pipx install git+https://github.com/psf/black.git@branch # branch of your choice
pipx install git+https://github.com/psf/black.git@ce14fa8b497bae2b50ec48b3bd7022573a59cdb1 # git hash
pipx install https://github.com/psf/black/archive/18.9b0.zip # install a release
Sintaks PIP dengan egg
harus digunakan saat memasang ekstra:
pipx install "git+https://github.com/psf/black.git#egg=black[jupyter]"
Jika aplikasi yang diinstal oleh PIPX memerlukan paket tambahan, Anda dapat menambahkannya dengan Suntikan PIPX. Misalnya, jika Anda telah menginstal ipython
dan ingin menambahkan paket matplotlib
ke dalamnya, Anda akan menggunakan:
pipx inject ipython matplotlib
Anda dapat menyuntikkan beberapa paket dengan menentukan semuanya pada baris perintah, atau dengan mendaftarkannya dalam file teks, dengan satu paket per baris, atau kombinasi. Misalnya:
pipx inject ipython matplotlib pandas
# or:
pipx inject ipython -r useful-packages.txt
Ini adalah alternatif untuk pipx install
.
pipx run
Unduh dan menjalankan "aplikasi" Python yang disebutkan di atas di lingkungan sementara satu kali, membuat sistem Anda tidak tersentuh sesudahnya.
Ini bisa berguna ketika Anda perlu menjalankan versi terbaru dari suatu aplikasi, tetapi tidak perlu ingin diinstal di komputer Anda.
Anda mungkin ingin melakukan ini saat Anda menginisialisasi proyek baru dan ingin mengatur struktur direktori yang tepat, ketika Anda ingin melihat teks bantuan aplikasi, atau jika Anda hanya ingin menjalankan aplikasi dalam casing sekali saja dan biarkan sistem Anda tidak tersentuh setelahnya.
Misalnya, posting blog cara mengatur proyek Python yang sempurna menggunakan pipx run
untuk memulai proyek baru dengan Cookiecutter, alat yang membuat proyek dari templat proyek.
Manfaat sampingan yang bagus adalah Anda tidak perlu ingat untuk meningkatkan aplikasi karena pipx run
akan secara otomatis menjalankan versi terbaru untuk Anda.
Oke, mari kita lihat seperti apa ini dalam latihan!
pipx run APP [ARGS...]
Ini akan menginstal paket dalam direktori sementara yang terisolasi dan memohon aplikasi. Cobalah:
> pipx run pycowsay moo
---
< moo >
---
^__^
(oo)_______
(__) )/
||----w |
|| ||
Perhatikan bahwa Anda tidak perlu menjalankan perintah instalasi apa pun untuk menjalankan aplikasi .
Argumen apa pun setelah nama aplikasi akan diteruskan langsung ke aplikasi:
> pipx run pycowsay these arguments are all passed to pycowsay!
-------------------------------------------
< these arguments are all passed to pycowsay! >
-------------------------------------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
Terkadang PIPX dapat mengkonsumsi argumen yang disediakan untuk aplikasi:
> pipx run pycowsay --py
usage: pipx run [-h] [--no-cache] [--pypackages] [--spec SPEC] [--verbose] [--python PYTHON]
[--system-site-packages] [--index-url INDEX_URL] [--editable] [--pip-args PIP_ARGS]
app ...
pipx run: error: ambiguous option: --py could match --pypackages, --python
Untuk mencegah dasbor ganda ini --
sebelum aplikasi. Ini akan membuat PIPX untuk meneruskan argumen ke kata demi kata yang tepat ke aplikasi:
> pipx run -- pycowsay --py
----
< --py >
----
^__^
(oo)_______
(__) )/
||----w |
|| ||
Berjalan kembali aplikasi yang sama cepat karena PIPX menyimpan lingkungan virtual berdasarkan per-aplikasi. Caches hanya bertahan beberapa hari, dan ketika mereka kedaluwarsa, PIPX akan kembali menggunakan versi terbaru dari paket tersebut. Dengan cara ini Anda dapat yakin bahwa Anda selalu menjalankan versi baru dari paket tanpa harus meningkatkan secara manual.
Jika nama aplikasi tidak cocok dengan nama paket, Anda dapat menggunakan argumen --spec
untuk menentukan nama PACKAGE
, dan menyediakan APP
untuk dijalankan secara terpisah:
pipx run --spec PACKAGE APP
Misalnya, paket Esptool tidak memberikan nama yang sama dengan nama yang sama:
>> pipx run esptool
'esptool' executable script not found in package 'esptool'.
Available executable scripts:
esp_rfc2217_server.py - usage: 'pipx run --spec esptool esp_rfc2217_server.py [arguments?]'
espefuse.py - usage: 'pipx run --spec esptool espefuse.py [arguments?]'
espsecure.py - usage: 'pipx run --spec esptool espsecure.py [arguments?]'
esptool.py - usage: 'pipx run --spec esptool esptool.py [arguments?]'
Anda sebaliknya dapat menjalankan executable yang disediakan paket ini dengan menggunakan --spec
:
pipx run --spec esptool esp_rfc2217_server.py
pipx run --spec esptool espefuse.py
pipx run --spec esptool espsecure.py
pipx run --spec esptool esptool.py
Perhatikan bahwa ekstensi .py
bukanlah sesuatu yang Anda tambahkan dengan nama yang dapat dieksekusi. Ini adalah bagian dari nama yang dapat dieksekusi, sebagaimana ditentukan oleh paket. Ini bisa jadi apa saja. Misalnya, saat bekerja dengan paket Pymodbus:
>> pipx run pymodbus[repl]
'pymodbus' executable script not found in package 'pymodbus'.
Available executable scripts:
pymodbus.console - usage: 'pipx run --spec pymodbus pymodbus.console [arguments?]'
pymodbus.server - usage: 'pipx run --spec pymodbus pymodbus.server [arguments?]'
pymodbus.simulator - usage: 'pipx run --spec pymodbus pymodbus.simulator [arguments?]'
Anda dapat menjalankan executable seperti ini:
pipx run --spec pymodbus[repl] pymodbus.console
pipx run --spec pymodbus[repl] pymodbus.server
pipx run --spec pymodbus[repl] pymodbus.simulator
Argumen PACKAGE
di atas sebenarnya adalah penentu persyaratan. Oleh karena itu, Anda juga dapat menentukan versi spesifik, rentang versi, atau ekstra. Misalnya:
pipx run mpremote==1.20.0
pipx run --spec esptool==4.6.2 esptool.py
pipx run --spec 'esptool>=4.5' esptool.py
pipx run --spec 'esptool >= 4.5' esptool.py
Perhatikan bahwa beberapa penentu persyaratan harus dilampirkan dalam kutipan atau melarikan diri.
Anda juga dapat lari dari repositori git. Di sini, black
digunakan sebagai contoh.
pipx run --spec git+https://github.com/psf/black.git black
pipx run --spec git+https://github.com/psf/black.git@branch black # branch of your choice
pipx run --spec git+https://github.com/psf/black.git@ce14fa8b497bae2b50ec48b3bd7022573a59cdb1 black # git hash
pipx run --spec https://github.com/psf/black/archive/18.9b0.zip black # install a release
Anda dapat menjalankan file .py secara langsung juga.
pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
pipx is working!
Itu saja! Itu adalah perintah yang paling penting yang ditawarkan pipx
. Untuk melihat semua dokumentasi PIPX, jalankan pipx --help
atau lihat dokumen.
PIPX terinspirasi oleh PIPSI dan NPX. Itu diciptakan oleh Chad Smith dan mendapat banyak bantuan dari kontributor. Logo ini dibuat oleh @irishmorales.
PIPX dikelola oleh tim sukarelawan (dalam urutan abjad)
Masalah dan permintaan tarik pasti diterima! Lihat berkontribusi untuk memulai. Setiap orang yang berinteraksi dengan proyek PIPX melalui CodeBase, Tracker Masalah, Ruang Obrolan, atau yang diharapkan untuk mengikuti kode perilaku PSF.