python依赖管理工具poetry

作者:matrix 发布时间:2021 年 11 月 30 日 分类:Python

用的pipenv但是lock时间有点太长了,所以到poetry试试水...

poetry安装

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -

项目设置poetry虚拟环境

poetry init

按照选项默认就好

给虚拟环境安装依赖

poetry add requests=3.6
poetry add requests@last

安装之后系统会自动生成pyproject.toml,poetry.lock文件

删除依赖

poetry remove requests

显示依赖信息

poetry show

poetry show --tree 

使用三方源

pyproject.toml 末尾:

[[tool.poetry.source]]
name = "tsinghua"
url = "https://pypi.tuna.tsinghua.edu.cn/simple/"

用熟悉了基本命令也就清楚,不用翻文档。但是vscode上兼容性不好,还要自己配置解析器😭

参考:

https://Python-poetry.org/docs/basic-usage/

相比 Pipenv,Poetry 是一个更好的选择

pycharm+pipenv虚拟环境作开发和依赖管理

作者:matrix 发布时间:2019 年 5 月 23 日 分类:Python

之前使用vagrant来在虚拟机环境中把所有Python模块安装,但是也有一些问题。比如个别时候连接到vagrant虚拟机内部比较慢,还有就是pip3 install安装模块有时候会失败,不能更好的管理依赖包分发项目。

每个项目模块分开管理安装,不会污染本地系统的全局环境,测试和生产的模块都可以用这个来管理分发。

pipenv会在项目中创建相关联的虚拟环境信息以及依赖信息pipfile文件,一起开发的同事可以执行pipenv install操作来安装以及初始化好的pipenv项目,系统会默认安装所需要的依赖环境。

测试环境:pycharm 2018.3.5 for MacOS

安装pipenv

$ pip3 install pipenv

初始化项目

项目目录中执行操作

$ pipenv --python 3.7#指定项目运行python版本 需要系统已经安装好该版本

会创建Python虚拟环境所在目录

✔ Successfully created virtual environment!
Virtualenv location: /Users/用户名/.local/share/virtualenvs/untitled-RaU-esYo

查看虚拟环境信息:

$ pipenv --venv

安装模块

$ pipenv install requests
#也可以指定安装版本 :pipenv install requests==2.22

指定开发环境才安装的模块

$ pipenv install --dev nose2#安装测试环境才用的开发包

项目克隆

项目需要让其他同事克隆就可以直接install来操作

$ pipenv install
#或者使用 pipenv install –dev#安装所有依赖项,包括测试开发包

pycharm配置

1.添加python解释器

2.选择Pipenv 虚拟环境
Base interpreter为本机系统中的python解释器路径
Pipenv executable表示pipenv,命令的环境变量路径

 

3.之后在项目下选择刚刚新建好的Pipenv名称

 

测试运行

配置好pipenv后直接点击右上角的运行图标即可看到命令行窗口的显示

pipenv命令收集

pipenv shell #进入虚拟环境命令行
pipenv --venv#查看虚拟环境路径
pipenv --py#获取虚拟环境python解释器路径
pipenv graph#查看依赖关系
pipenv run python Main.py#使用Pipenv虚拟环境运行Main.py

报错

  • 克隆pipenv环境的时候报错OSError: mysql_config not found
    centos下确保安装mysql-devel等依赖环境
$ yum install mysql-devel gcc gcc-devel python-devel

如果已经安装则考虑是否为软连接不存在导致的not found

ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config

参考:
一条命令解决mysql_config not found
https://blog.csdn.net/weiliu0626/article/details/8444644

  • 若debug调试失败显示类似的红色进程报错
pydev debugger: process 37807 is connecting

删掉项目中隐藏的的.idea目录,然后重启pycharm即可调试变量

参考:
https://www.jianshu.com/p/00af447f0005

https://www.jetbrains.com/help/pycharm/pipenv.html

https://intellij-support.jetbrains.com/hc/en-us/community/posts/205967904-pydev-debugger-is-not-connecting

https://blog.51cto.com/2681882/2164134