新一代Python包管理工具来了

发表于:2022-2-09 09:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:费弗里    来源:Python大数据分析

  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的功能:

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号