1 簡介
說起Python
的包管理工具,大家第一時間想到的肯定是pip
、conda
等經典工具。但最近我發現了一款新穎的Python
包管理工具——pdm
,它受到PEP582
(https://www.python.org/dev/peps/pep-0582/
)以及node
管理庫檔案方式的啟發,幫助我們以本地專案庫的形式建立及管理不同的Python
環境。
2 使用pdm管理專案庫環境
2.1 pdm的安裝
pdm
的安裝方式多種多樣,這裡我們使用官方推薦的方式進行安裝:
python -m pip install --user pipx
python -m pipx ensurepath
接著關閉你的終端重開一個新的,繼續輸入:
pipx install pdm
當出現以下內容時,則代表我們的pdm
已經安裝完成了~
2.2 pdm的基礎使用
使用pdm
以當前目錄作為專案倉庫建立專案時,我們需要根據專案實際需要,先切換到對應Python
版本的環境之下,再執行pdm init
來初始化專案,以3.7
為例:
cd C:\Users\pengz\Desktop\當期部落格工作臺\pdm-demo
conda activate dash-apps
pdm init
初始化專案時,根據自己的實際情況填寫每個問題即可:
上述過程之後,你會在當前目錄下發現建立好的pyproject.toml
檔案,它記錄了當前pdm
專案的各項基本引數:
接下來我們可以根據自己專案的實際需要使用pdm add
命令來安裝指定的單個或多個第三方Python
庫,以flask
為例(其中第一行命令用於設定國內pypi
映象源):
pdm config pypi.url https://pypi.douban.com/simple/
pdm add -v flask flask-login
完成安裝後,我們可以在當前目錄下看到__pypackages_
目錄,我們前面所安裝的庫就隔離安裝在其下面,類似node
的node_modules
目錄:
也與PEP582
所倡導的專案結構相符合:
foo
__pypackages__
3.7
lib
bottle
myscript.py
這樣就實現了專案級別的環境隔離效果,且無需建立額外的虛擬環境,要在IDE
中使用pdm
專案下的本地隔離庫執行程式很簡單,以pycharm
為例,將pdm
專案開啟為pycharm
工程之後,找到如圖所示位置的lib
資料夾,將其標記為Sources Root
即可,同時記得將直譯器選為pdm init
初始化時所在環境相對應的:
與終端中原始環境的執行結果對比,可以發現成功實現了環境隔離,這是因為pdm
專案的__pypackages__
中的包會在環境本身的site-packages
之前被載入,從而更好地隔離包的環境:
如果你想要在其他路徑或其他機器上還原某個pdm
專案,則僅需要將pyproject.toml
與pdm.lock
檔案拷貝過去,再在對應目錄下執行pdm sync -v
命令即可,非常的方便,類似npm install
配合package.json
的功能:
關於pdm
的更多特性你可以前往其官網https://pdm.fming.dev/
瞭解更多~
以上就是本文的全部內容,歡迎在評論區與我進行討論。