pipx:在虛擬環(huán)境中運(yùn)行 Python 應(yīng)用
通過使用 pipx 隔離運(yùn)行 Python 應(yīng)用來避免版本沖突并提高安全性。
如果你使用 Python,你可能會(huì)安裝很多 Python 應(yīng)用。有些是你只想嘗試的工具。還有一些是你每天都在使用的久經(jīng)考驗(yàn)的應(yīng)用,所以你把它們安裝在你使用的每一臺(tái)計(jì)算機(jī)上。這兩種情況下,在虛擬環(huán)境中運(yùn)行你的 Python 應(yīng)用是非常有用的,這可以使它們以及它們的依賴關(guān)系相互分離,以避免版本沖突,并使它們與你系統(tǒng)的其它部分隔離,以提高安全性。
這就是 pipx 出場(chǎng)的地方。
大多數(shù) Python 應(yīng)用可以使用 pip 進(jìn)行安裝,它只安裝 Python 包。然而,pipx
為你的 Python 應(yīng)用創(chuàng)建并管理一個(gè)虛擬環(huán)境,并幫助你運(yùn)行它們。
安裝 pipx
pipx
主要是一個(gè) RPM 包,你可以在任何 Fedora、RHEL 或 CentOS 機(jī)器上安裝它:
$ sudo dnf install pipx
使用 pipx
我將通過 Cowsay 以及 Concentration 工具演示如何使用 pipx
。
安裝軟件包
安裝完 pipx
后,你可以用以下方法安裝 Python 包:
$ pipx install <python_package>
要安裝 Cowsay 包:
$ pipx install cowsay ✔ │ 20:13:41
installed package cowsay 4.0, Python 3.9.5
These apps are now globally available
- cowsay
done! ✨ 🌟 ✨
現(xiàn)在你可以在系統(tǒng)的任何地方運(yùn)行 Cowsay,通過終端與你對(duì)話!
$ cowsay "I <3 OSDC"
_________
| I <3 OSDC |
=========
\
\
^__^
(oo)\_______
(__)\ )\/\
||----w |
|| ||
Cowsay
以特殊權(quán)限進(jìn)行安裝
不是所有的應(yīng)用都像 Cowsay 一樣簡(jiǎn)單。例如,Concentration 會(huì)與你系統(tǒng)中的許多其他組件交互,所以它需要特殊的權(quán)限。用以下方式安裝它:
$ pipx install concentration ✔ │ 10s │ │ 20:26:12
installed package concentration 1.1.5, Python 3.9.5
These apps are now globally available
- concentration
done! ✨ 🌟 ✨
Concentration 通過阻止 distractors
文件中列出的特定網(wǎng)站來幫助你集中注意力。要做到這點(diǎn),它需要以 sudo
或 root 權(quán)限運(yùn)行。你可以用 OpenDoas 來做到這點(diǎn),這是 doas
命令的一個(gè)版本,可以用特定的用戶權(quán)限運(yùn)行任何命令。要使用 doas
以 sudo
權(quán)限來運(yùn)行 Concentration:
$ doas concentration improve ✔ │ │ 20:26:54
doas (sumantrom) password:
Concentration is now improved :D!
如你所見,這個(gè)獨(dú)立的應(yīng)用能夠改變系統(tǒng)中的一些東西。
列出已安裝的應(yīng)用
pipx list
命令顯示所有用 pipx
安裝的應(yīng)用和它們的可執(zhí)行路徑:
$ pipx list
venvs are in /home/sumantrom/.local/pipx/venvs
apps are exposed on your $PATH at /home/sumantrom/.local/bin
package concentration 1.1.5, Python 3.9.5
- concentration
package cowsay 4.0, Python 3.9.5
- cowsay
卸載應(yīng)用
當(dāng)你使用完畢后,知道如何卸載它們是很重要的。pipx
有一個(gè)非常簡(jiǎn)單的卸載命令:
$ pipx uninstall <package name>
或者你可以刪除每個(gè)軟件包:
$ pipx uninstall-all
pipx uninstall-all 2 ✘ │ 20:13:35
uninstalled cowsay! ✨ 🌟 ✨
uninstalled concentration! ✨ 🌟 ✨
嘗試 pipx
pipx
是一個(gè)流行的 Python 應(yīng)用的包管理器。它可以訪問 PyPi 上的所有東西,但它也可以從包含有效 Python 包的本地目錄、Python wheel 或網(wǎng)絡(luò)位置安裝應(yīng)用。
如果你安裝了大量的 Python 應(yīng)用,可以試試 pipx
。