Python項目管理工具Poetry使用示例詳解
1. 導讀
本文將介紹一個目前十分流行,且用于眾多Python
項目中依賴管理和打包的工具,包含基本的安裝與使用。
2. Poetry
Poetry 是Python 中用于依賴管理和打包的工具。它允許您聲明項目所依賴的庫,并將為您管理(安裝/更新)它們。
Poetry 提供了一個鎖定文件以確??芍貜桶惭b,并且可以構(gòu)建您的項目以進行分發(fā)。
2.1. *toml文件
pyproject.toml
可以算是Poetry
的核心配置文件了,里面包含了項目的相關(guān)信息,使用的環(huán)境信息,安裝的依賴信息,主要有一下配置:
# 項目包的名字 name = "my-package" # 版本 version = "0.1.0" # 包的描述 description = "A short description of the package." # 許可證 license = "MIT" # 作者 authors = ["冷凍工廠 <storyice@163.com>",] # 維護者 maintainers = ["冷凍工廠 <storyice@163.com>",] # READMD文件 readme = ["docs/README1.md", "docs/README2.md"] # 包的介紹主頁 homepage = "https://python-poetry.org/" # 倉庫地址 repository = "https://github.com/python-poetry/poetry" # 文檔 documentation = "https://python-poetry.org/docs/"
3. 實戰(zhàn)
3.1. 安裝
在Linux、macOS、Windows (WSL)中安裝Poetry
- Linux、macOS、Windows (WSL)
curl -sSL https://install.python-poetry.org | python3 -
- 升級現(xiàn)有
Poetry
poetry self update
3.2. 新建項目
- 創(chuàng)建新的項目
poetry new project-name # 項目名 與 文件夾名 不同 poetry new folder-name --name project-name # 使用src項目結(jié)構(gòu)(可選) poetry new --src project-name # 初始化已經(jīng)存在的項目 cd project-name-dir poetry init
3.3. 環(huán)境管理
poetry首先會檢查當前項目是否存在虛擬環(huán)境,如果存在,保持現(xiàn)有環(huán)境,如果沒有,會自動創(chuàng)建一個與當前依賴相匹配的環(huán)境。
- 選擇項目環(huán)境
poetry env use /full/path/to/python # 如果解釋器已經(jīng)添加到環(huán)境變量中 poetry env use python3.7 poetry env use 3.7 # 同上,二選一
- 顯示當前環(huán)境信息
poetry env info
- 顯示與當前項目相關(guān)的環(huán)境
poetry env list
- 刪除環(huán)境
poetry env remove /full/path/to/python # 同時刪除多個環(huán)境 poetry env remove python3.6 python3.7 python3.8 # 一次性刪除全部環(huán)境 poetry env remove --all
小編建議設(shè)置下面配置,其作用是將虛擬環(huán)境的文件夾放置于項目文件夾下
poetry config virtualenvs.in-project true
3.4. 依賴管理
使用Poetry
進行添加依賴,有兩種方式。一種是在命令行中,直接使用相關(guān)命令來添加依賴,或者刪除依賴。另外一種是,通過修改項目中的pyproject.toml
文件,來管理依賴。
- 命令行管理
# 添加依賴 poetry add <lib> # 添加dev依賴 poetry add <lib> --dev # poetry add package-name -D # 刪除依賴 poetry remove <lib> # 更新依賴 poetry update # 鎖定依賴版本 poetry lock # 列出全部依賴項 poetry show # 列出陳舊的依賴項 poetry show --outdated # 搜索指定的包 poetry search <name>
- 配置文件管理
[tool.poetry] name = "project-name" version = "0.1.0" description = "" authors = ["Swindler <jzj@1033199817@qq.com>"] readme = "README.md" packages = [{include = "project_name"}] [tool.poetry.dependencies] python = "^3.8" # 在此直接添加,如 0.1.0 版本的numpy numpy = "0.1.0" # 如果不知道指定的版本,可以用*代替,Poetry會自動選擇合適的版本 numpy = "*" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"
根據(jù)配置文件更新依賴
poetry update
依賴的版本指定,支持不等式(簡單易用)
>= 1.2.0 > 1 < 2 != 1.2.3
3.5. 換源
Poetry
也支持換源,加速依賴的下載速度.
- 清華源
# 將下方配置添加至pyproject.toml末尾即可 [[tool.poetry.source]] name = "tsinghua-source" url = "https://pypi.tuna.tsinghua.edu.cn/simple/" default = true # 僅從定義倉庫獲取
- 阿里源
# 將下方配置添加至pyproject.toml末尾即可 [[tool.poetry.source]] name = "aliyun-source" url = " http://mirrors.aliyun.com/pypi/simple/" default = true # 僅從定義倉庫獲取
3.6. requirement
Poetry
也支持requirement.txt
操作
- 導出
requirement.txt
poetry export -f requirements.txt --output requirements-prod.txt --without-hashes
- 導入
requirement.txt
cat requirements.txt|xargs poetry add
以上就是Python項目管理工具Poetry使用示例詳解的詳細內(nèi)容,更多關(guān)于Python Poetry項目管理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python腳本實現(xiàn)自動替換文件指定內(nèi)容
這篇文章主要為大家詳細介紹了如何編寫一個py腳本,可以實現(xiàn)自定義替換py文件里面指定內(nèi)容,感興趣的小伙伴可以跟隨小編一起學習一下2025-03-03python實現(xiàn)Android與windows局域網(wǎng)文件夾同步
這篇文章主要給大家詳細介紹了python實現(xiàn)Android與windows局域網(wǎng)文件夾同步,文中有詳細的代碼示例和圖文介紹,具有一定的參考價值,需要的朋友可以參考下2023-09-09python學習筆記之調(diào)用eval函數(shù)出現(xiàn)invalid syntax錯誤問題
python是一門多種用途的編程語言,時常扮演腳本語言的角色。一般來說,python可以定義為面向?qū)ο蟮哪_本語言,這個定義把面向?qū)ο蟮闹С趾兔嫦蚰_本語言的角色融合在一起。很多時候,人們常常喜歡用“腳本”和不是語言來描述python的代碼文件。2015-10-10