相关网址
官网:https://python-poetry.org/
github: https://github.com/python-poetry/poetry
参考blog:https://blog.kyomind.tw/python-poetry/
介绍
官网自我介绍:python packaging and dependency management made easy
大概的意思是:让python的打包
和依赖管理
更容易
简单的来说,poetry类似于pip可以进行包管理,
但是又比pip强大的多,
它还包含以下功能:
-
虚拟环境
管理 -
包的
依赖
管理 -
代码的
打包
与发布
本文介绍版本为:Poetry (version 1.5.1)
现在的版本是:1.8.3版本;
pip的不足
pip在我们第一次接触python就使用到了,
但是一些功能的不完善,
导致了其他包管理的出现。
pip uninstall的困境,
以Flask为例:
在我们使用pip install flask
时,
因为flask内部依赖于其他包,
如Werkzeug
、Jinja2
、click
等,
所以安装的时候
pip会连同这些依赖一同安装(这很方便),
但是在我们不需要flask的时候,
我们需要使用pip uninstall flask从环境中把flask移除时,
pip并不会帮助我们把这些依赖包一同移除,
而只会移除flask自己本身。
总结一句话:
安装包时候一起安装依赖,卸载包时候不能一起卸载依赖;
这时候我们就需要
自己一步步去卸载flask所依赖的包,
但更多的时候,
我们并不清楚flask依赖的包有哪些,
所以,当我们卸载包的时候就变得很难受。
这个时候,
poetry出现了,
poetry拥有包的依赖性管理
功能,
我们可以很方便的查看包与包之间的依赖关系,
在我们使用poetry移除包的时候,
它会自己帮助我们处理包的依赖关系,并一同卸载。
安装
安装方式有两种,
一是使用官方提供的脚本安装
,
二是使用pip
安装。
使用官方提供脚本安装
官方话术:
We provide a custom installer
that will install Poetry
in a new virtual environment
to isolate
it
from the rest of your system.
This ensures that
dependencies will not
be accidentally
upgraded or uninstalled,
and allows Poetry
to manage its own environment.
意思就是:
他们提供了一个安装程序,
会在一个新的虚拟环境中安装poetry,
以确保poetry的依赖不会被错误的升级或者删除。
Liunx/MacOS/WSL
$ curl -sSL https://install.python-poetry.org | python3 -
Windows
$ (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
上面的命令很有意思;
详细解释这个命令的文章,可以参考:https://blog.csdn.net/weixin_41748874/article/details/142372615
下面我要执行这个命令,要在powershell中执行,那么就要设置powershell的代理。
参考这篇文章
设置powershell代理;
$env:HTTP_PROXY="http://127.0.0.1:4890"
$env:HTTPS_PROXY="http://127.0.0.1:4890"
默认安装目录
默认安装目录:
MacOS: ~/Library/Application Support/pypoetry
Linux/Unix: ~/.local/share/pypoetry
Windows: %APPDATA%\pypoetry
自定义安装目录
也可以使用POETRY_HOME
环境变量设置安装目录
curl -sSL https://install.python-poetry.org | POETRY_HOME=/etc/poetry python3 -
设置POETRY_HOME
后的安装位置为$POETRY_HOME/venv/bin/poetry
设置$PATH环境变量
以便更方便的使用poetry
poetry安装的时候,
自动帮我们在以下目录创建了软连接
,
可以将以下目录
添加到$PATH
中:
-
Unix
:$HOME/.local/bin
-
Windows
:%APPDATA%\Python\Scripts
$POETRY_HOME/bin
if $POETRY_HOME
was set.
或者
直接将安装目录的绝对路径
添加到$PATH中:
MacOS
: ~/Library/Application Support/pypoetry/venv/bin/poetry
Linux/Unix
: ~/.local/share/pypoetry/venv/bin/poetry
Windows
: %APPDATA%\pypoetry\venv\Scripts\poetry
$POETRY_HOME/venv/bin/poetry
if $POETRY_HOME
was set.
使用pip安装
在需要使用的虚拟环境
中执行
pip install poetry
执行效果如下:
c:\program files\python310\lib\site-packages
C:\Users\codezsx\AppData\Local\pypoetry\Cache
poetry source add ali https://mirrors.aliyun.com/pypi/simple/ --default