pipx:在虛擬環境中運行 Python 應用
通過使用 pipx 隔離運行 Python 應用來避免版本沖突并提高安全性。
如果你使用 Python,你可能會安裝很多 Python 應用。有些是你只想嘗試的工具。還有一些是你每天都在使用的久經考驗的應用,所以你把它們安裝在你使用的每一臺計算機上。這兩種情況下,在虛擬環境中運行你的 Python 應用是非常有用的,這可以使它們以及它們的依賴關系相互分離,以避免版本沖突,并使它們與你系統的其它部分隔離,以提高安全性。
這就是 pipx 出場的地方。
大多數 Python 應用可以使用 pip 進行安裝,它只安裝 Python 包。然而,pipx
為你的 Python 應用創建并管理一個虛擬環境,并幫助你運行它們。
安裝 pipx
pipx
主要是一個 RPM 包,你可以在任何 Fedora、RHEL 或 CentOS 機器上安裝它:
$ 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! ✨ 🌟 ✨
現在你可以在系統的任何地方運行 Cowsay,通過終端與你對話!
$ cowsay "I <3 OSDC"
_________
| I <3 OSDC |
=========
\
\
^__^
(oo)\_______
(__)\ )\/\
||----w |
|| ||
Cowsay
以特殊權限進行安裝
不是所有的應用都像 Cowsay 一樣簡單。例如,Concentration 會與你系統中的許多其他組件交互,所以它需要特殊的權限。用以下方式安裝它:
$ 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
文件中列出的特定網站來幫助你集中注意力。要做到這點,它需要以 sudo
或 root 權限運行。你可以用 OpenDoas 來做到這點,這是 doas
命令的一個版本,可以用特定的用戶權限運行任何命令。要使用 doas
以 sudo
權限來運行 Concentration:
$ doas concentration improve ✔ │ │ 20:26:54
doas (sumantrom) password:
Concentration is now improved :D!
如你所見,這個獨立的應用能夠改變系統中的一些東西。
列出已安裝的應用
pipx list
命令顯示所有用 pipx
安裝的應用和它們的可執行路徑:
$ 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
卸載應用
當你使用完畢后,知道如何卸載它們是很重要的。pipx
有一個非常簡單的卸載命令:
$ pipx uninstall <package name>
或者你可以刪除每個軟件包:
$ pipx uninstall-all
pipx uninstall-all 2 ✘ │ 20:13:35
uninstalled cowsay! ✨ 🌟 ✨
uninstalled concentration! ✨ 🌟 ✨
嘗試 pipx
pipx
是一個流行的 Python 應用的包管理器。它可以訪問 PyPi 上的所有東西,但它也可以從包含有效 Python 包的本地目錄、Python wheel 或網絡位置安裝應用。
如果你安裝了大量的 Python 應用,可以試試 pipx
。