新一代Python包管理工具

目录
  • 1 简介
  • 2 使用pdm管理项目库环境
    • 2.1 pdm的安装
    • 2.2 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包管理工具内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python超有用的多版本管理工具pyenv

    目录 1.安装与配置 2.使用pyenv 3.总结 前言: 我们在平时的项目开发或者学习中,有可能使用不同的Python版本,大家都知道Python的版本非常多,如果我们把需要的不同版本的Python都下载到服务器上,管理起来会非常困难,多版本并存又容易互相干扰,搞不好整个服务器的Python环境会因此乱掉导致不能正常工作,那么我们应该如何解决Python多版本共存于管理的问题呢?接下来就来介绍一个Python环境管理工具:pyenv,有了它,你就可以轻松的在多个版本的Python之间自由切换,

  • Python依赖管理及打包工具Poetry使用规范

    目录 啥是依赖规范 版本约束 ^ 约束 ~ 约束 * 约束 比较符 git 依赖 路径依赖 url 依赖 Python 限制依赖项 多个限制 使用环境限制 扩展依赖规范语法 啥是依赖规范 可以以各种形式指定项目的依赖项,取决于依赖项的类型以及安装项目可能需要的可选约束 版本约束 ^ 约束 编写规范 允许的版本范围 ^1.2.3 >=1.2.3 <2.0.0 ^1.2 >=1.2.0 <2.0.0 ^1 >=1.0.0 <2.0.0 ^0.2.3 >=0.2.3 &

  • 一文读懂Python版本管理工具Pyenv使用

    pyenv简单介绍 在日常运维中, 经常遇到这样的情况: 系统自带的Python是2.x,而业务部署需要Python 3.x 环境, 此时需要在系统中安装多个Python版本,但又不能影响系统自带的Python 版本,即需要实现Python的多版本环境共存, pyenv就是这样一个Python版本管理器, 可以同时管理多个python版本共存! 简单的说,pyenv 可以根据需求使用户在系统里安装和管理多个Python 版本: - 配置当前用户的python的版本; - 配置当前shell的py

  • easy_install python包安装管理工具介绍

    easy_install更准确的说是一个和setuptools绑定的模块,一切下载.构建.安装和管理的工作都可以由它来担当. 一般的执行方式: easy_install + URL 但是,如果某些应用或脚本在Python CheeseShop里,可以直接执行: easy_install +安装包名 这样比我们打开一个网站,再去慢慢的下载.安装来得快得多. 使用easy_install需要先安装setuptools工具,然后将easy_install所在目录加到PATH环境变量里: Windows

  • Python包管理工具pip的15 个使用小技巧

    认识pip 众所周知,pip可以对python的第三方库进行安装.更新.卸载等操作,十分方便. pip的全称:package installer for python,也就是Python包管理工具. 可能有些人用了很久pip,但还不清楚包管理工具是个啥. 我们先从Python这门语言说起,Python之所以受欢迎不光是因为它简单易学,更重要的是它有成千上万的宝藏库. 这些库相当于是已经集成好的工具,只要安装就能在Python里使用.它们可以处理各式各样的问题,无需你再造轮子,而且随着社区的不断更

  • 新一代Python包管理工具

    目录 1 简介 2 使用pdm管理项目库环境 2.1 pdm的安装 2.2 pdm的基础使用 1 简介 说起Python的包管理工具,大家第一时间想到的肯定是pip.conda等经典工具.但最近我发现了一款新颖的Python包管理工具——pdm,它受到PEP582以及node管理库文件方式的启发,帮助我们以「本地项目库」的形式创建及管理不同的Python环境. 2 使用pdm管理项目库环境 2.1 pdm的安装 pdm的安装方式多种多样,这里我们使用官方推荐的方式进行安装: python -m

  • Python包管理工具pip用法详解

    pip提供我们各色各样的软件(第三方库),而这些第三方库又可以给我们实现各种各样不同的功能,科学计算.画图.操作文件.聊天…… 我们可以通过Cmd终端.Pycharm.Jupyter三种平台使用pip安装这些第三方库. 官方Python 第三方库软件包地址:PyPI · Python 包索引 Anaconda,Conda,Pip的关系 Anaconda是一个python发行版.软件发行版是在系统上提前编译和配置好的软件包集合, 装好了后就可以直接用. Conda是一个包管理器.包管理器是自动化软

  • Mac下python包管理工具pip的安装

    pip是常用的python包管理工具,用python的同学,都离不开pip -- 第一种 在系统自带的python2.7的路径下 pip是python的包管理工具,在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要我们手动安装. 打开终端: sudo easy_install pip 第二种 在python3的路径下 curl https://bootstrap.pypa.io/get-pip.py | python3 安装后查看版本 pip --versi

  • Python学习之pip包管理工具的使用

    目录 写文的原因 pip 简介 pip 安装/移除包 升级包和查看已安装包 搜索包 写文的原因 学习 Python 的过程中,经常会使用 pip 命令去安装第三方模块,但细细琢磨下来,我真的掌握这款工具了吗? 本文为你全面揭示一下 pip 包管理工具的使用! pip 简介 pip 是 Python 默认集成的包管理工具,而其本质就是 Python 标准库中的一个包,只是比较特殊一些,可以管理其它包,从 Python2.7 开始,Python 安装包中默认装载了 pip,而且如果使用虚拟环境,即使

  • 一文带你了解前端包管理工具npm、yarn和pnpm

    目录 为什么需要包管理工具? 版本管理规范 前端主流包管理工具 yarn vs npm vs pnpm 包管理工具安装和版本切换 安装项目依赖 npm .yarn 和 pnpm 常用命令 安全性 lock 文件 性能对比 pnpm 的优势 总结 为什么需要包管理工具? 每种主流编程语言都有包管理工具,比如 java 的 Maven.Gradle,Python 的 pip,nodejs 的 npm.yarn.pnpm 等. 包管理工具的主要作用是管理第三方依赖,也可以看成一个"轮子"工厂

  • Web前端开发工具——bower依赖包管理工具

    Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系. 包管理工具一般有以下的功能: a)注册机制:每个包需要确定一个唯一的 ID 使得搜索和下载的时候能够正确匹配,所以包管理工具需要维护注册信息,可以依赖其他平台. b)文件存储:确定文件存放的位置,下载的时候可以找到,当然这个地址在网络上是可访问的. c)上传下载:这是工具的主要功能,能提高包使用的便利性.比如想用 jqu

  • bower 强大的管理web包管理工具

    Bower介绍 bower官方地址:http://bower.io/ bower是twitter的又一个开源项目,使用nodejs开发,用于web包管理.如果越来越多得开源项目都托管在github上,bower只需要将github上项目加上一个配置文件既可以使用bower方式使用安装包.作为包管理,bower能提供添加新web包,更新web包,删除web包,发布web包功能,管理包依赖.web包通常认为由html+css+javascript构成. quick start: 解决实际问题 试想我

  • 浅谈node模块与npm包管理工具

    在Node.js中,以模块为单位划分所有的功能,并且提供了一个完整的模块加载机制,所以我们可以将应用程序划分为各个不同的部分,并且对这些部分进行很好的协同管理.通过将各种可重用代码编写在各种模块中的方法,可以大大减少应用程序的代码量,提高应用程序的开发效率以及应用程序代码的可读性.通过模块加载机制,可以将各种第三方模块引入到我们的应用程序中. 在node.js中,提供npm包管理工具,用于从第三方网站上下载各种Node.js包. 一.模块 1.1 加载模块 在Node.js中,以模块为单位划分所

  • Go语言包管理工具dep的安装与使用

    什么是dep? dep和go,在一定程度上相当于maven之于Java,composer之于PHP,dep是go语言官方的一个包管理工具. 相比较go get而言,dep可以直接给引入的第三方包一个专门的目录,并且可以专门制定一个配置文件,控制go项目所引入的包,版本以及其他依赖关系. dep这个项目放在golang官方的github中:https://github.com/golang/dep 官方对于dep的解释是:dep is the official experiment, but no

随机推荐