新一代Python包管理工具来了
1 简介
说起Python
的包管理工具,大家第一时间想到的肯定是pip
、conda
等经典工具。但最近我发现了一款新颖的Python
包管理工具——pdm
,它受到PEP582
(https://www.python.org/dev/peps/pep-0582/
)以及node
管理库文件方式的启发,帮助我们以本地项目库的形式创建及管理不同的Python
环境。
2 使用pdm管理项目库环境
2.1 pdm的安装
pdm
的安装方式多种多样,这里我们使用官方推荐的方式进行安装:
python -m pip install --user pipx
python -m pipx ensurepath
接着关闭你的终端重开一个新的,继续输入:
pipx install pdm
当出现以下内容时,则代表我们的pdm
已经安装完成了~
2.2 pdm的基础使用
使用pdm
以当前目录作为项目仓库创建项目时,我们需要根据项目实际需要,先切换到对应Python
版本的环境之下,再执行pdm init
来初始化项目,以3.7
为例:
cd C:\Users\pengz\Desktop\当期博客工作台\pdm-demo
conda activate dash-apps
pdm init
初始化项目时,根据自己的实际情况填写每个问题即可:
上述过程之后,你会在当前目录下发现创建好的pyproject.toml
文件,它记录了当前pdm
项目的各项基本参数:
接下来我们可以根据自己项目的实际需要使用pdm add
命令来安装指定的单个或多个第三方Python
库,以flask
为例(其中第一行命令用于设置国内pypi
镜像源):
pdm config pypi.url https://pypi.douban.com/simple/
pdm add -v flask flask-login
完成安装后,我们可以在当前目录下看到__pypackages_
目录,我们前面所安装的库就隔离安装在其下面,类似node
的node_modules
目录:
也与PEP582
所倡导的项目结构相符合:
foo
__pypackages__
3.7
lib
bottle
myscript.py
这样就实现了项目级别的环境隔离效果,且无需创建额外的虚拟环境,要在IDE
中使用pdm
项目下的本地隔离库执行程序很简单,以pycharm
为例,将pdm
项目打开为pycharm
工程之后,找到如图所示位置的lib
文件夹,将其标记为Sources Root
即可,同时记得将解释器选为pdm init
初始化时所在环境相对应的:
与终端中原始环境的执行结果对比,可以发现成功实现了环境隔离,这是因为pdm
项目的__pypackages__
中的包会在环境本身的site-packages
之前被载入,从而更好地隔离包的环境:
如果你想要在其他路径或其他机器上还原某个pdm
项目,则仅需要将pyproject.toml
与pdm.lock
文件拷贝过去,再在对应目录下执行pdm sync -v
命令即可,非常的方便,类似npm install
配合package.json
的功能:
关于pdm
的更多特性你可以前往其官网https://pdm.fming.dev/
了解更多~
以上就是本文的全部内容,欢迎在评论区与我进行讨论。
新一代Python包管理工具来了的更多相关文章
- Python包管理工具小结
此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为一名接触Python有一段时间的初学者,越来越体会到Python的方便之处,它使人能更 多的关注业务本身 ...
- python 包管理工具
python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...
- Python 包管理工具解惑
Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...
- Python包管理工具和多版本环境管理
1. Python包管理工具 在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_instal ...
- 转载:Python 包管理工具解惑
Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供m ...
- Python包管理工具pip的基本使用
1.简介 pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具. 2.pip安装 如果你安装的Python 2 >=2.7.9 或 ...
- python包管理工具他们之间的关系
python包管理工具之间的关系 现在的python包管理工具有很多,非常混乱,必须理清他们之间的关系才能更好的使用python构建强大的包关系系统工具. 首先:python官方推荐的第三方库是PyP ...
- Python | Pipenv官方推荐的python包管理工具
原文地址:https://cloud.tencent.com/developer/article/1355672 Pipenv - 官方推荐的的python包管理工具. Pipenv是一款旨在将所有包 ...
- [转载]Python 包管理工具
[转载]Python 包管理工具 最近由于机缘巧合,使用各种方法安装了一些Python包,所以对Python的包管理开始感兴趣.在网上找到一篇很好的文章:https://blog.zengrong.n ...
随机推荐
- 1114 - Easily Readable
1114 - Easily Readable PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB ...
- 1067 - Combinations
1067 - Combinations PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Giv ...
- WPF中的StaticResource和DynamicResource有什么区别
StaticResource 是静态资源 DynamicResource是动态资源 用一下例子说明 <Window.Resources> <Style x:Key="Bor ...
- Oracle数据库导入csv文件(sqlldr命令行)
1.说明 Oracle数据库导入csv文件, 当csv文件较小时, 可以使用数据库管理工具, 比如DBevaer导入到数据库, 当csv文件很大时, 可以使用Oracle提供的sqlldr命令行工具, ...
- 使用uiautomatorviewer,查看app页面元素,进行元素定位
环境搭建: 安装adt,安装成功后,就可以在adt路径下的tools文件夹中找到uiautomatorviewer.bat 用来做什么? uiautomatorviewer.bat是用来扫描和分析An ...
- mybatis学习笔记(三)
使用mapper接口来实现数据操作 创建UserMapper接口,添加方法,方法名要与UserMappper.xml中id所一致并且接口名要与编写sql语句的xmL文件名同名.namespace 中的 ...
- 不用find,怎样递归地给目录设置700,给文件设置600权限?
https://stackoverflow.com/questions/36553701/how-to-set-permissions-recursively-700-for-folders-and- ...
- maven pom.xml 的 spring-boot-maven-plugin 红色报错 解决
解决方法,添加对应的spring boot 版本号即可
- PowerShell【For篇】
1-10的循环 1 for($i=1;$i -le 10;$i++){ 2 $i 3 } 当然之前前一篇中所写到的1..9你也可以直接在ps中写道 1..10 运行结果也是一样的. 也可以这样 1 f ...
- 解决ubuntu18.04重启后蓝牙鼠标需要重新配对的问题
打开bash,运行bluetoothctl命令 # bluetoothctl 列出可用的蓝牙控制器 [bluetooth]# list 选择使用的蓝牙控制器 [bluetooth]# select 0 ...