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

本文介绍了PDM,一个新兴的Python包管理工具,它借鉴了PEP582和node的库管理方式,实现项目级别的环境隔离。通过简单的安装和初始化步骤,PDM可以在不创建额外虚拟环境的情况下管理项目依赖,并通过pyproject.toml和pdm.lock文件实现项目的可移植性。使用PDM,开发者可以更高效地组织和管理Python项目库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是阳哥。

说起Python的包管理工具,大家第一时间想到的肯定是pipconda等经典工具。

但最近我发现了一款新颖的Python包管理工具——pdm,它受到PEP582https://www.python.org/dev/peps/pep-0582/)以及node管理库文件方式的启发,帮助我们以「本地项目库」的形式创建及管理不同的Python环境。

9d8273a6db523f3576c477fa0024747b.png

1 使用pdm管理项目库环境

1.1 pdm的安装

pdm的安装方式多种多样,这里我们使用官方推荐的方式进行安装:

python -m pip install --user pipx
python -m pipx ensurepath

接着关闭你的终端重开一个新的,继续输入:

pipx install pdm

当出现以下内容时,则代表我们的pdm已经安装完成了~

b03e882114037f61ff75423a6d43a8cd.png

1.2 pdm的基础使用

使用pdm以当前目录作为项目仓库创建项目时,我们需要根据项目实际需要,先切换到对应Python版本的环境之下,再执行pdm init来初始化项目,以3.7为例:

cd C:\Users\pengz\Desktop\当期博客工作台\pdm-demo
conda activate dash-apps
pdm init

初始化项目时,根据自己的实际情况填写每个问题即可:

cb93b1cb0c7c1f7a95455810fe051b4d.png

上述过程之后,你会在当前目录下发现创建好的pyproject.toml文件,它记录了当前pdm项目的各项基本参数:

bb94dfc08421cb081548c1485cce6c60.png

接下来我们可以根据自己项目的实际需要使用pdm add命令来安装指定的单个或多个第三方Python库,以flask为例(其中第一行命令用于设置国内pypi镜像源):

pdm config pypi.url https://pypi.douban.com/simple/
pdm add -v flask flask-login
f5bc09f3d6492fc3a4272cd30f784571.png

完成安装后,我们可以在当前目录下看到__pypackages_目录,我们前面所安装的库就隔离安装在其下面,类似nodenode_modules目录:

85740c82afc62ad1c6a22880c2f55eb3.png

也与PEP582所倡导的项目结构相符合:

foo
    __pypackages__
        3.7
            lib
                bottle
    myscript.py

这样就实现了项目级别的环境隔离效果,且无需创建额外的虚拟环境,要在IDE中使用pdm项目下的本地隔离库执行程序很简单,以pycharm为例,将pdm项目打开为pycharm工程之后,找到如图所示位置的lib文件夹,将其标记为Sources Root即可,同时记得将解释器选为pdm init初始化时所在环境相对应的:

784a1771b8ce170db3cba8c499e43eca.png

与终端中原始环境的执行结果对比,可以发现成功实现了环境隔离,这是因为pdm项目的__pypackages__中的包会在环境本身的site-packages之前被载入,从而更好地隔离包的环境:

d7495c27935619d21af6c0dae3cfec3d.png

如果你想要在其他路径或其他机器上还原某个pdm项目,则仅需要将pyproject.tomlpdm.lock文件拷贝过去,再在对应目录下执行pdm sync -v命令即可,非常的方便,类似npm install配合package.json的功能:

22015fe521283de296ebe20639cbc2b1.png

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

-------- End --------

7c1ea30ed1a2a3f54fb915080137ac8d.png
精选资料

回复关键词,获取对应的资料:

关键词资料名称
600《Python知识手册》
md《Markdown速查表》
time《Python时间使用指南》
str《Python字符串速查表》
pip《Python:Pip速查表》
style《Pandas表格样式配置指南》
mat《Matplotlib入门100个案例》
px《Plotly Express可视化指南》
精选内容

数据科学: VS Code 中 Python配置使用指南 | 财经工具 Tushare | Matplotlib 最有价值的 50 个图表

书籍阅读: 如何阅读一本书 | 巴菲特之道 | 价值 | 原则 | 投资最重要的事 | 戴维斯王朝 | 客户的游艇在哪里 | 刻意练习 | 林肯传 | 金字塔原理

投资小结: 2021Q4 | 2021Q3 | 2021Q2 | 2021Q1 | 2020Q4

精选视频

可视化: Plotly Express

财经: Plotly在投资领域的应用 | 绘制K线图表

排序算法: 汇总 | 冒泡排序 | 选择排序 | 快速排序 | 归并排序 | 堆排序 | 插入排序 | 希尔排序 | 计数排序 | 桶排序 | 基数排序

9404e3aa3d34f8605c774f27c705a54b.png
### AIGC的发展现状 AIGC(Artificial Intelligence for Generative Content)作为生成式人工智能的重要分支,其发展已经进入了一个快速扩张阶段。目前,AIGC不仅在技术层面取得了显著进步,在行业应用和社会影响方面也展现出巨大潜力[^1]。具体而言: - **行业现状**:AIGC行业的整体发展呈现出多元化特征,覆盖多个技术和应用场景。例如,在内容创作领域,基于自然语言处理的文本生成工具已能够生产高质量的文章、新闻报道甚至文学作品;而在视觉艺术领域,AI绘画工具可以模仿多种风格并创造出独特的艺术品[^2]。 - **技术趋势**:近年来,AIGC技术的核心突破集中在深度学习框架下的大规模预训练模型开发上。这些模型具备强大的泛化能力,能够在少量微调的情况下适应不同的下游任务需求。此外,跨模态融合成为一大热点方向,即让机器同时理解和生成文字、图片、音频等多种形式的信息[^3]。 ### 主要研究方向 对于未来的AIGC研究来说,有几个重要方向值得特别关注: #### 一、多模态交互与理解 为了实现更加自然的人机沟通体验,研究人员正在努力提升系统的多感官感知能力和综合表达水平。这涉及到语音识别、情感计算以及场景重建等多个子课题的研究进展[^4]。 ```python import torch from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("t5-base") model = AutoModelForSeq2SeqLM.from_pretrained("t5-base") input_text = "translate English to French: The book is on the table." inputs = tokenizer(input_text, return_tensors="pt").input_ids outputs = model.generate(inputs) translated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) print(translated_text) # Output should be something like 'Le livre est sur la table.' ``` 此代码片段展示了如何使用T5模型完成简单的翻译任务,体现了当前NLP领域的技术水平之一。 #### 二、伦理与安全性保障机制建设 随着AIGC产品逐渐渗透至日常生活当中,确保此类系统不会传播虚假信息或者侵犯个人隐私变得尤为重要。因此,构建有效的监管体系和技术防护措施成为了不可忽视的一部分工作重点[^3]。 #### 三、高效算法优化与硬件支持改进 尽管现有的大型神经网络架构已经在很多基准测试中取得优异成绩,但它们往往伴随着高昂运算成本的问题。为此,科学家们持续探索轻量化设计方案,并寻求更适合运行复杂AI程序的新一代芯片解决方案[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值