Poetry(2)Poetry的基本使用方式


Poetry的基本使用

 

准備工作

如果你是在一個已有的項目里使用Poetry,你只需要執行 poetry init 命令來創建一個 pyproject.toml 文件:

poetry init

可看到有很多提示輸入,不確定的內容就先按下Enter使用默認值,后續可以再修改pyproject.toml文件。指定依賴的環節可以跳過,手動安裝會更高效一點。
 

如果你想創建一個新的 Python 項目,使用 poetry new <文件夾名稱> 命令可以創建一個項目模板:

poetry new poetry-demo

這會創建一個這樣的項目結構:

poetry-demo
├── pyproject.toml
├── README.rst
├── poetry_demo
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_poetry_demo.py

 

創建虛擬環境

1.使用 poetry install 命令創建虛擬環境(確保當前目錄有 pyproject.toml 文件):

poetry install

這個命令會讀取 pyproject.toml 中的所有依賴(包括開發依賴)並安裝,如果不想安裝開發依賴,可以附加 --no-dev 選項。如果項目根目錄有 poetry.lock 文件,會安裝這個文件中列出的鎖定版本的依賴。
 

2.使用poetry add命令創建虛擬環境

poetry add 依賴包名稱

當我們使用add命令時,沒有檢測到虛擬環境,也會為當前目錄自動創建虛擬環境。
 

3.利用 poetry env use 創建
這個命令,可以指定創建虛擬環境時使用的Python解釋器版本。

poetry env use python3.7

使用這個命令后,會在虛擬環境路徑下創建一個envs.toml文件,用來存儲哪些虛擬環境指定了Python解釋器的版本。

➜  virtualenvs cat envs.toml 
[athena-LtyjKFV4]
minor = "3.7"
patch = "3.7.6"

 

激活虛擬環境

執行poetry的命令並不需要激活虛擬環境,因為poetry會自動檢測當前虛擬環境,如果想在當前目錄對應的虛擬環境中執行命令,可以使用以下命令:

poetry run <你的命令> # 例如: poetry run python flask.py

如果想顯示的激活虛擬環境,使用如下命令:

poetry shell

 

安裝依賴

安裝最新穩定版本的flask

poetry add flask

指定為開發依賴,會寫到pyproject.toml中的[tool.poetry.dev-dependencies]區域

poetry add pytest --dev

指定具體的版本

poetry add flask=2.22.0

安裝pyproject.toml文件中的全部依賴

poetry install

只安裝非development環境的依賴,一般部署時使用

poetry install --no-dev

 

追蹤 & 更新包

查看項目安裝的依賴

poetry show

樹形結構查看項目安裝的依賴

poetry show -t

查看可以更新的依賴

poetry update

更新所有鎖定版本的依賴

poetry update

如果你想更新某個指定的依賴,傳遞包名作為參數:

poetry update foo

 

卸載包

使用 poetry remove <包名稱>卸載一個包:

poetry remove foo

 

查找當前項目的虛擬環境

使用poetry env list可以查看當前的虛擬環境

poetry env list

如果想查看當期虛擬環境的絕對路徑,可以加上--full-path

poetry env list --full-path

 

刪除虛擬環境路徑

刪除虛擬環境,使用remove命令,指定對應的解析器版本

poetry env remove python2 
poetry env remove python3

 

PyPI 鏡像源

以使用清華提供的 PyPI 鏡像源為例,你需要在 pyproject.toml 文件里加入這部分內容:

[[tool.poetry.source]]
name = "tsinghua"
default = true
url = "https://pypi.tuna.tsinghua.edu.cn/simple"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM