Poetry
为什么需要Poetry
python的pip+虚拟环境能基本解决项目依赖和环境隔离,pip移除模块,pip 就不会进行管理了,而是直接把指定的模块移除,留下一堆依赖。
# install
curl -sSL https://install.python-poetry.org | python3 -
# add path
echo 'export PATH="~/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
使用
初始化项目
poetry init
# 生成pyproject.toml
修改源
poetry source add --priority=default mirrors https://pypi.tuna.tsinghua.edu.cn/simple/
# pyproject.toml里新增
# [[tool.poetry.source]]
# name = "mirrors"
# url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
# priority = "default"
# 一般不需要手动去修改pyproject.toml
# 而是通过命令区修改
虚拟环境
poetry env info --path
# 你可以通过以下命令来查看当前项目的虚拟环境路径:
# 配置虚拟环境生成在项目文件中
poetry config virtualenvs.in-project true
# 生成虚拟环境 会生成.env文件夹
poetry env use python3
# 进入虚拟环境
poetry shell
管理包
# 新增包
poetry add package-name
# 删除
poetry remove package-name
# 配置虚拟环境生成在项目文件中
poetry config virtualenvs.in-project true
poetry source add --priority=primary mirrors https://pypi.tuna.tsinghua.edu.cn/simple/
poetry install
run
poetry run python3 xxx.py
group
可以定义不同的gruop,例如 test里面需要加pytest,文档的需要加mkdocs
poetry add httpx --group test
导出依赖
poetry export -f requirements.txt --output requirements.txt