Py学习  »  Python

划时代的 Python 包管理器 — PDM 局部&全局配置

Python编程时光 • 4 年前 • 516 次点击  

完整系列目录

1、划时代的 Python 包管理工具 -- PDM 入门篇
2、划时代的 Python 包管理工具 -- PDM 原理篇
3、划时代的 Python 包管理器 — PDM 局部&全局项目
4、划时代的 Python 包管理器 — PDM 局部&全局配置
5、读者问:如何设置 PyCharm 支持 PDM ?
6、划时代的 Python 包管理器 — PDM 缓存机制

以下是正文

所有的 pdm 命令都可以使用 -p 和 -g 选项来指定你要操作的是全局项目还是局部项目,若你没有指定 -p 和 -g ,并且刚好处在局部项目目录之下,pdm 甚至会自动识别该项目,而优先操作局部项目。

而 pdm config 里的配置,优先逻辑却与上面相反。

当你不使用   -l/--local  时,pdm config 则优先操作全局的 pdm config ,因此如下三条命令是等价的

pdm config pypi.url http://pypi.douban.com/simple
pdm config -g pypi.url http://pypi.douban.com/simple
pdm config --global pypi.url http://pypi.douban.com/simple

只有当你明确指定  -l/--local 才会操作局部项目的 pdm config

pdm config -l pypi.url http://pypi.douban.com/simple
pdm config --local pypi.url http://pypi.douban.com/simple

全局配置与局部配置对应配置文件位置是:

  • 全局配置:~/.pdm/config.toml

  • 局部配置:/.pdm.toml

局部项目的配置文件名由 . 开头,因此是隐藏文件,需要你使用 ls -a 才可以看到。

需要千万注意的是,若你想修改其他项目的局部配置,不仅需要加 -p/--project 还要加 -l/--local 选项




    
pdm config -l -p  pypi.url http://pypi.douban.com/simple
pdm config --local --project  pypi.url http://pypi.douban.com/simple

pdm 会优先取局部配置,若局部配置里没有,才会去取全局的配置。

如果你配置完某个参数后,想删除的话,可以指定 -d/--delete 参数,但全局配置与局部配置的删除逻辑又不一样。

不加 --local 的话,说明操作全局配置,pdm 并不直接将配置删除,而是还原该全局配置为默认值,以 auto_global 为例,它的默认值为 False,现在我先将其改为 True,再将其删除,发现 auto_global 只是被重置了而已。

而加了 --local 的话,说明操作局部配置,若局部配置里刚好有该配置,则将其删除,若没有该配置,则直接返回成功。

还有一点需要特别注意,pdm 中并非所有的配置都有全局和局部之分,就比如  use_global ,你加个 --local 会直接报 ValueError ,不允许将其设置为局部配置,因为没有意义~


到目前 pdm 已经输出四篇文章了,下一篇终于可以讲讲 pdm 的缓存机制,是个非常重要且核心的知识点,后天见



点击下方卡片,关注明哥

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