在 Linux 中安裝和使用 pipx
pip
是一種流行的工具,用于從 Python 包索引 中安裝 Python 包和模塊。
然而,在最近的發(fā)行版本中,pip
用戶遇到了 外部管理環(huán)境錯(cuò)誤。
error: externally-managed-environment
這是為避免通過 pip 安裝的 Python 包與本機(jī)包管理器之間發(fā)生沖突而添加的“功能”。Python 希望你使用單獨(dú)的虛擬環(huán)境,而不是通過 pip
在全局安裝包。
這就是 pipx
發(fā)揮作用的地方。它為你安裝的每個(gè)應(yīng)用創(chuàng)建一個(gè)新的虛擬環(huán)境,然后在全局級(jí)別的 /bin
中創(chuàng)建到本地二進(jìn)制文件的鏈接。這一切都是自動(dòng)的。它為你節(jié)省時(shí)間和精力。
讓我們看看如何在 Ubuntu 和其他 Linux 發(fā)行版上安裝和使用 pipx
。
在 Ubuntu 和其他 Linux 上安裝 pipx
安裝很簡單,可以在 Ubuntu 和 Debian 上使用以下命令安裝:
sudo apt update && sudo apt install pipx
對(duì)于其他發(fā)行版,請(qǐng)使用你的包管理器并安裝它。
完成安裝后,將其添加到 $PATH 以便可以從任何地方訪問它:
pipx ensurepath
install pipx in ubuntu
關(guān)閉終端并重新啟動(dòng)它。這就完成了! 現(xiàn)在,讓我們看看如何使用它。
使用 pipx
包管理器的主要用途是什么? 軟件包安裝、更新和刪除。
讓我向你展示如何使用 pipx
執(zhí)行以下操作:
- 搜索包
- 包安裝
- 升級(jí)
- 包移除
讓我們從安裝開始。
如何使用 pipx 安裝包
要使用 pipx
安裝包,你必須遵循一個(gè)簡單的命令語法:
pipx install <package_name>
例如,在這里,我安裝了一個(gè)非常有用的程序 Cowsay:
pipx install cowsay
install python packages in isolation using pipx in ubuntu
同樣,如果你想安裝特定版本的包,你必須在 ==
后跟上版本號(hào),如下所示:
pipx install package==version
例如,在這里,我安裝了 1.24.1 版本的 numpy:
pipx install numpy==1.24.1
如何搜索包
pipx
程序沒有搜索功能(因?yàn)?PyPI 的 API 使用限制)但這并不意味著你不能搜索 Python 包。
要搜索包,你需要安裝 pypisearch
:
pipx install pypisearch
完成后,你可以使用 pypisearch
命令搜索包:
pypisearch python_package_name
在這里,我搜索了 neofetch:
search python packages in Ubuntu
如何使用 pipx 升級(jí)包
與任何其他現(xiàn)代包管理器一樣,你可以一次升級(jí)所有包,也可以一次升級(jí)一個(gè)包。
要一次升級(jí)所有軟件包,你只需執(zhí)行以下命令:
pipx upgrade-all
upgrade all the python packages at once in ubuntu
如你所見,它將 numpy 升級(jí)到最新版本。
但是如果你想升級(jí)一個(gè)特定的包,你可以這樣做:
pipx upgrade package-name
假設(shè)我想將 cowsay
包升級(jí)到最新版本,那么,我將使用以下命令:
pipx upgrade cowsay
upgrade specific python package using pipx in ubuntu
如何使用 pipx 卸載包
要?jiǎng)h除包,你必須使用 uninstall
標(biāo)志,如下所示:
pipx uninstall package_name
為了供你參考,在這里,我從我的系統(tǒng)中刪除了 numpy
:
pipx uninstall numpy
remove python packages using pipx in ubuntu
pip 還是 pipx?
對(duì) pip
的限制影響了最終用戶對(duì)它的使用。值得慶幸的是,pipx
提供了急需的替代方案。它符合使用虛擬環(huán)境的 Python 準(zhǔn)則,同時(shí)允許已安裝的應(yīng)用在全局范圍內(nèi)可用。
對(duì)于不是 Python 應(yīng)用開發(fā)的最終用戶,這提供了使用發(fā)行版?zhèn)}庫中不可用的 Python 應(yīng)用的選項(xiàng)。
希望本教程對(duì)你有所幫助。如果你有任何問題或建議,請(qǐng)告訴我。