python包管理器poetry

如果你关注过一些开源的python项目,一定会发现好多个项目都包含有一个叫做pyproject.toml的文件
这个文件遵循PEP518,用来替代 requirements.txtsetup.py等配置文件。相关工具比较出名的有pipenv和poetry,相比于pipenv,我更喜欢poetry的设计,在这里简单介绍一下.

poetry的安装和使用都很简单,对于arch可以直接用下面的命令安装

sudo pacman -S python-poetry

具体用法可以点击前面的链接查看,下面来说一下一些小坑

指定Python版本

工作中经常遇到的一个问题就是不同项目的python版本不统一,poetry并没有直接解决这个问题,而是借助了pyenv这个工具来实现python版本的切换,具体使用方法查看前面的链接即可.使用pyenv安装好指定的python版本以后,使用类似poetry env use 3.7这样的命令即可切换python版本,具体方法可以查看poetry文档

指定镜像

使用poetry的另一个问题是大陆访问pypi速度太慢,在使用pip时,我们可以通过添加源来解决,尽管poetry也可以使用pip的镜像源下载,然而在分析包之间的依赖关系时似乎依然是走的pypi,要解决这个问题,我们可以在每个项目下的pyproject.toml文件内写入配置文件,比如使用豆瓣源

[[tool.poetry.source]]
name = "douban"
url = "https://pypi.doubanio.com/simple"
default = true

目前来看这个设置还是有些麻烦的,而且有些脱离这个设置的本意,希望poetry在未来的更新中能加入一些优化吧

使用pycharm

很不幸pycharm目前还不支持自动寻找poetry目录,我们能自己告诉pycharm解释器的位置,好在这个操作很简单.使用

poetry env info

可以得到如下输出

Virtual environment
Python:         3.7.1
Implementation: CPython
Path:           /path/to/poetry/cache/virtualenvs/test-O3eWbxRl-py3.7
Valid:          True

System
Platform: darwin
OS:       posix
Python:   /path/to/main/python

Pyth 就是虚拟环境所在的位置,我们在pycharm中选中这个解释器,
Settings (ctrl+alt+s) > Project > Python interpreter > “Add” > “Virtual Environement” > Existing environement > Three dots > 把pyth粘贴进去, 然后选中bin/python, 就可以使用啦.然而对于手动输入poetry run ...来在虚拟环境中运行命令.

  • pycharm官方对poetry的支持以及相关讨论可以查看这个页面https://youtrack.jetbrains.com/issue/PY-30702
  • 一个实验性质的pycharm插件在这里,以及这个项目的github页面.
    可以预见在很短时间内,我们就可以无痛地使用pycharm+poetry了.

poetry管理本地环境,上线用docker,真香!

你可能感兴趣的:(python基础,python高级,python)