原來我一直安裝 Python 庫的姿勢都不對呀
平常我都是直接執(zhí)行 pip install 安裝的第三方庫,很多教程也是這么介紹的,一直以來我都認(rèn)為這是標(biāo)準(zhǔn)的、正確的安裝 Python 第三方庫的姿勢。直到我最近看到Python核心開發(fā)者Brett Cannon 寫的一篇文章。
簡單總結(jié)來說,他認(rèn)為其實(shí)最正確的安裝方式是使用 python-m pip 來執(zhí)行 pip 命令,無論什么情況下均是如此。
他在文章里大致提出了以下幾個(gè)建議:
- 建議用 python-m pip 安裝三方庫
- 務(wù)必使用虛擬環(huán)境,不要安裝至系統(tǒng) Python
- 建議用 pipx 獨(dú)立安裝工具
- 建議用 python-m venv 創(chuàng)建虛擬環(huán)境
- 可以將容器整體作為一個(gè)環(huán)境,跳過虛擬環(huán)境
我簡單解釋下每個(gè)建議背后的理由。
1. 建議用 python-m pip 安裝三方庫
理由是這樣做,可以實(shí)現(xiàn)更加準(zhǔn)確地控制庫所安裝的位置。
不少人的電腦里,會(huì)同時(shí)安裝不同版本的 Python。少數(shù)極端的用戶甚至?xí)惭b不同的小版本,如 3.7 和 3.7.4。這是直接用 pip的話,你自己可能都不清楚最終安裝到了哪個(gè)版本的Python 下面。
而 python-m pip 命令,可以讓你直接指定要安裝到哪個(gè)版本。
2. 務(wù)必使用虛擬環(huán)境,不要安裝至系統(tǒng) Python
這個(gè)建議應(yīng)該很多人都認(rèn)同,在實(shí)踐中也是這樣執(zhí)行的。如果不用虛擬環(huán)境隔離的話,系統(tǒng)版本的三方庫會(huì)變得特別的龐雜,甚至出現(xiàn)系統(tǒng)依賴庫的版本不合理,導(dǎo)致系統(tǒng)崩潰的嚴(yán)重問題。
3. 建議用 pipx 獨(dú)立安裝工具
如果你想嘗試 black、mypy 等開發(fā)工具,可以考慮通過 pipx 將這些工具各自安裝到獨(dú)立的環(huán)境中,同時(shí)又能夠直接在系統(tǒng)環(huán)境下調(diào)用終端的入口。
4. 建議用 python-m venv 創(chuàng)建虛擬環(huán)境
Brett 個(gè)人更傾向于使用 python-m venv 命令創(chuàng)建虛擬環(huán)境,理由和第一點(diǎn)建議相同,可以獲得更大的控制權(quán),精確指定所使用的版本。
當(dāng)然,使用 virutalenv 也是一個(gè)非常普遍的方式。
5. 可以將容器整體作為一個(gè)環(huán)境,跳過虛擬環(huán)境
如果項(xiàng)目是容器化開發(fā)的,那么把每個(gè)容器當(dāng)做成一個(gè)個(gè)獨(dú)立的虛擬環(huán)境使用也是沒有問題的。在容器里沒有必要再單獨(dú)去創(chuàng)建虛擬環(huán)境了。
當(dāng)然前提是,你不要安裝到系統(tǒng)自帶的 Python 中。
總結(jié)
以上所述是小編給大家介紹的安裝python庫的正確姿勢,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Pandas數(shù)據(jù)形狀df.shape的實(shí)現(xiàn)
本文主要介紹了Pandas數(shù)據(jù)形狀df.shape的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Python偏函數(shù)實(shí)現(xiàn)原理及應(yīng)用
這篇文章主要介紹了Python偏函數(shù)實(shí)現(xiàn)原理及應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Python實(shí)現(xiàn)曲線擬合操作示例【基于numpy,scipy,matplotlib庫】
這篇文章主要介紹了Python實(shí)現(xiàn)曲線擬合操作,結(jié)合實(shí)例形式分析了Python基于numpy,scipy,matplotlib庫讀取csv數(shù)據(jù)、計(jì)算曲線擬合及圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
在Python中,不用while和for循環(huán)遍歷列表的實(shí)例
今天小編就為大家分享一篇在Python中,不用while和for循環(huán)遍歷列表的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
pandas修改DataFrame列名的實(shí)現(xiàn)方法
這篇文章主要介紹了pandas修改DataFrame列名的實(shí)現(xiàn)方法, 文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
利用Python實(shí)現(xiàn)簡易計(jì)算器的示例代碼
最近學(xué)習(xí)了字符串,運(yùn)算符,條件語句,循環(huán)語句,我在想可以用我最近學(xué)的東西做什么? 看到運(yùn)算我就想到了可以做一個(gè)簡易的計(jì)算器,感興趣的可以了解一下2022-11-11

