pdm
#Python工具
受到PEP582以及node管理库文件方式的启发,以「本地项目库」的形式创建及管理不同的Python环境。
具体的介绍可以查看官方文档
安装
这里仅介绍官方推荐的方法
1 | python -m pip install --user pipx |
接着关闭你的终端重开一个新的,继续输入(通过[[pipx]]安装):
1 | pipx install pdm |
当出现以下内容时,则代表我们的pdm已经安装完成了~
使用
无法指定Python版本,只能依赖于已有的版本
项目的构建
使用pdm以当前目录作为项目仓库创建项目时,需要根据项目的实际需要^^切换到对应的Python版本^^,再执行pdm init来初始化项目
1 | cd C:\Users\pengz\Desktop\当期博客工作台\pdm-demo |
初始化项目时,根据自己的实际情况填写每个问题即可
初始化完成项目之后,可以在当前目标下创建好pyproject.toml文件,它记录了当前pdm项目的各项基本参数
为项目安装环境
根据自己项目的实际需要使用pdm add命令来安装指定的单个或多个第三方Python库,以flask为例(其中第一行命令用于设置国内pypi镜像源)
1 | pdm config pypi.url https://pypi.douban.com/simple/ |
安装完成之后,可以在当前目录下看到__pypackages__目录,安装的库就隔离安装在下面,类似node的node_modules目录
与PEP582所倡导的项目结构相符合
1 | foo |
这样就实现了项目级别的环境隔离效果,且无需创建额外的虚拟环境
与IDE联动
Pycharm
将pdm项目打开为pycharm工程之后,找到图中lib文件夹,将其标记为Sources Root即可,同时记得将解释器选为pdm init 初始化所在环境相对应的:
与终端中原始环境的执行结果对比,可以发现成功实现了环境隔离,这是因为pdm项目的__pypackages__中的包会在环境本身的site-packages之前被载入,从而更好地隔离包的环境
迁移
如果想要在其他路径或其他机器上还原莫个pdm项目,则仅需要将^^pyproject.toml 与pdm.lock^^文件拷贝过去,再在对应目录下执行^^pdm sync -v^^ 命令即可,非常的方便,类似npm install 融合package.json 功能
提速
1 | pdm config pypi.url https://pypi.douban.com/simple/ |