说明
poetry
是一个Python虚拟环境
和依赖管理
的工具,oetry
和pipenv
类似,另外还提供了打包
和发布
的功能。
安装
安装不成功,大多数是网站被墙了
macOS & Linux
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
windows
在
powershell
使用该命令
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
会自动添加
到环境变量
,需要重新 打开 powershell
,查看是否安装成功
配置
使用前
修改
这些配置
后,更好用
查看当前配置
poetry config --list ------------------- PS C:\Users\ASUS> poetry config --list cache-dir = "D:\\Python\\peotry_env" experimental.new-installer = true installer.parallel = true virtualenvs.create = true virtualenvs.in-project = true virtualenvs.path = "{cache-dir}\\virtualenvs" # D:\Python\peotry_env\virtualenvs
修改配置
poetry config cache-dir D:\\Python\\peotry_env poetry config virtualenvs.in-project true
创建项目
该命令,会建立一个目录结构
poetry new demo
结构
demo ├── pyproject.toml ├── README.rst ├── demo │ └── __init__.py └── tests ├── __init__.py └── test_demo.py
其中
pyproject.toml
文件将协调项目
及其依赖项
[tool.poetry]
name = "demo"
version = "0.1.0"
description = ""
authors = ["‘zbigdataboy‘ <876545500@qq.com>"]
[tool.poetry.dependencies]
python = "^3.9"
[tool.poetry.dev-dependencies]
pytest = "^5.2"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
初始化项目
这是在 项目已经存在的情况下使用,为了创建
pyproject.toml
管理项目
poetry init
添加依赖 & 库
如果项目
不存在 虚拟环境
,将会创建,同时还会 创建poetry.lock
,用以记录项目依赖的版本
poetry add requests
卸载依赖
poetry remove requests
安装依赖项
用以使用项目时,依赖于开发时一样
poetry install
修改 依赖安装源
项目的
pyproject.toml
文末追加
[[tool.poetry.source]] name = "tsinghua" url = "https://pypi.tuna.tsinghua.edu.cn/simple"
虚拟环境执行项目
poetry
会自动在相应目录
寻找该项目的环境
poetry run python app.py
显示的激活
poetry shell
其他命令
# 显示当前环境信息 poetry env info # 列出与项目关联的环境(一个项目可能需要不同版本依赖做测试) poetry env list # 列出当前配置 poetry config --list
导出 requirements.txt 文件
暂时只支持 requirements.txt 格式
# 导出 requirements.txt 文件 -f 导出格式 --output 导出文件名 poetry export -f requirements.txt --output requirements.txt
版权声明:《 【PY模块】poetry 虚拟环境管理器 》为明妃原创文章,转载请注明出处!
最后编辑:2022-4-6 12:04:08