社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

新一代 Python 包管理工具来了!

数据科学杂谈 • 4 年前 • 483 次点击  

1 简介

说起Python的包管理工具,大家第一时间想到的肯定是pipconda等经典工具。但最近我发现了一款新颖的Python包管理工具——pdm,它受到PEP582https://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_目录,我们前面所安装的库就隔离安装在其下面,类似nodenode_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.tomlpdm.lock文件拷贝过去,再在对应目录下执行pdm sync -v命令即可,非常的方便,类似npm install配合package.json的功能:

关于pdm的更多特性你可以前往其官网https://pdm.fming.dev/了解更多~

重磅!程序员学习交流群 已成立

在群里和大家分享一些程序员相关的知识,包括Python、ECharts、SQL、HQL、数据可视化、数据分析挖掘、机器学习、数据结构算法、程序员考证、网络数据采集、数据结构算法等等。也会免费分享一些编程学习的视频教程、电子资料及面试资料

有兴趣入群的同学,可长按扫描下方二维码添加微信

一定要备注:数据,可更快被通过且邀请进群



新书《SQL数据分析:从基础破冰到面试题解》上市之后,在京东和当当的新书热卖榜上,都取得了数据库类的第一名!


目前本书在当当和京东均有优惠活动:


本书由三部分组成:

(1)基础语法+进阶

(2)语法易错点提示

(3)48个SQL数据分析笔试面试练习题(带数据导入+参考答案)


本书的其他介绍,可以参考之前的文章:

《SQL数据分析:从基础破冰到面试题解》今天正式上市了!

3个常考的SQL数据分析题(含数据和代码)


再推荐一本企业中经常使用制作前端可视化的ECharts书!本书通俗易懂,手把手带你入门到实战!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128182