新一代Python包管理工具

 更新时间:2022年02月16日 12:05:33   作者:费弗里  
这篇文章主要介绍了新一代Python包管理工具,Python包管理工具,一般就会想到想到pip、conda等经典工具,本篇文章要介绍的是一款新颖的Python包管理工具pdm,需要的小伙伴可以参考一下

1 简介

说起Python的包管理工具,大家第一时间想到的肯定是pip、conda等经典工具。但最近我发现了一款新颖的Python包管理工具——pdm,它受到PEP582以及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的功能:

到此这篇关于新一代Python包管理工具的文章就介绍到这了,更多相关新一代Python包管理工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解python中list的使用

    详解python中list的使用

    这篇文章主要介绍了python中list的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • python数据分析matplotlib的基础绘图使用

    python数据分析matplotlib的基础绘图使用

    这篇文章主要为大家介绍了python数据分析matplotlib的基础绘图使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 为python爬虫docker镜像添加nodejs环境实现方法

    为python爬虫docker镜像添加nodejs环境实现方法

    这篇文章主要为大家介绍了为python爬虫docker镜像添加nodejs环境实现方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • python基础之reverse和reversed函数的介绍及使用

    python基础之reverse和reversed函数的介绍及使用

    我们在整理资料的时候,有的时候过于混乱难以整理,这时我们不妨可以对它先进行一个排序,这样可以方便我们浏览,查询,有利于我们整理资料,下面这篇文章主要给大家介绍了关于python基础之reverse和reversed函数的介绍及使用,需要的朋友可以参考下
    2022-12-12
  • Android应用开发中Action bar编写的入门教程

    Android应用开发中Action bar编写的入门教程

    这篇文章主要介绍了Android应用开发中ActionBar编写的入门教程,Action Bar可以实现的功能很多,比如导航菜单和标签页切换等,需要的朋友可以参考下
    2016-02-02
  • 使用SQLAlchemy操作数据库表过程解析

    使用SQLAlchemy操作数据库表过程解析

    这篇文章主要介绍了使用SQLAlchemy操作数据库表过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python安装、卸载及环境配置全指南(解决常见问题与报错)

    Python安装、卸载及环境配置全指南(解决常见问题与报错)

    Python作为当今最流行的编程语言之一,广泛应用于数据分析、人工智能、Web开发等领域,然而,许多用户在安装、卸载Python或配置环境时,经常会遇到各种问题,本文将从 Python安装、环境变量配置、卸载修复、虚拟环境管理 等方面,提供完整的解决方案,需要的朋友可以参考下
    2025-05-05
  • Python GUI学习之登录系统界面篇

    Python GUI学习之登录系统界面篇

    这篇文章主要介绍了Python GUI学习之登录系统界面篇,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python判断字符串与大小写转换

    Python判断字符串与大小写转换

    这篇文章主要介绍了Python判断字符串与大小写转换的方法,有需要的小伙伴可以参考下。
    2015-06-06
  • python 中文件输入输出及os模块对文件系统的操作方法

    python 中文件输入输出及os模块对文件系统的操作方法

    这篇文章主要介绍了python 中文件输入输出及os模块对文件系统的操作方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08

最新评论