Pipenv之前介绍过这个虚拟环境和依赖库管理,感觉还不错,Pipenv有也有不少缺点,比如lock慢,win支持不好,bug多等。然后有人推荐我了Poetry。他可以取代Pipenv,于是,“移情别恋”的我,找到了Python更好的虚拟环境和依赖库管理:Poetry。
我已经转向 poetry 了,poetry 大法就是好!
poetry 比 pipenv 在各种角度上好用很多,poetry 生成的 lock 是跨平台的,也就是说你在 windows 下面生产的 lock 文件不需要担心在 linux 下面会生成不一样的 lock 文件(当然换行符的问题还是存在)
poetry 在安装依赖的时候,就像他的 readme 一样,一般会保证你安装的依赖没有版本冲突问题,但 pipenv 就是单纯的像 pip 一样安装所有依赖,然后把版本写死而已。
什么是Poetry
Poetry 和 Pipenv 类似,是一个 Python 虚拟环境和依赖管理工具,它还提供了包管理功能,比如打包和发布。你可以把它看做是 Pipenv 和 Flit 这些工具的超集。它可以让你用 Poetry 来同时管理 Python 库和 Python 程序。
主页:https://poetry.eustace.io/
源码:https://github.com/sdispater/poetry
文档:https://poetry.eustace.io/docs
安装方法:
安装方法基本上比较简单:
<code>curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python/<code>
pip 安装
<code>pip install --user poetry/<code>
测试是否安装成功
<code>poetry --version /<code>
Python中使用poetry
poetry是使用 pyproject.toml 管理依赖列表和项目的各种meta信息,
<code>poetry init 如果在已有的项目中使用来创建一个pyproject.toml文件
poetry new 使用poetry创建一个新依赖管理项目
poetry install 创建虚拟环境 (确保当前目录存在pyproject.toml文件)
poetry shell 激活虚拟环境
poetry run python -V 查看python版本
poetry update 更新所有锁定版本的依赖
poetry update 更新某个指定的依赖
poetry remove 卸载删除一个模块
poetry env use python3.7 让poetry使用python3
#其他还有:
poetry show\t\t\t\t\t\t\t\t\t追踪 & 更新包
poetry show --tree\t\t 添加--tree 参数选项可以查看依赖关系:/<code>
注意事项
设置 PyPI 镜像源,以豆瓣提供的 PyPI 镜像源为例,前面我们讲过了的 pyproject.toml ,你需要在 pyproject.toml 文件里加入这部分内容:
<code>[[tool.poetry.source]]
name = "douban"
url = "https://pypi.doubanio.com/simple/"/<code>
当然,你还是可以选择继续使用 virtualenv 和 pip 这些基础工具,直到有一个更完美的解决方案出现。不过,我其实愿意选择试试新东西,继续努力折腾。
好了,就这么多啦,我是迷神,更多精彩python内容,可以关注我哦,有问题也可以评论哦。
閱讀更多 迷神筆記 的文章