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](/data/attachment/album/202107/29/205239brl9k5ooz59tld7l.png "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
。
via: https://opensource.com/article/21/7/python-pipx
作者:Sumantro Mukherjee 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive