有没有办法让 pip 打印它将尝试使用的配置?出于调试目的,很高兴知道:
- config.ini 文件位于正确的位置并且 pip 正在找到它们。
- 配置设置的优先级按照 文档 期望的方式处理
原文由 Alexander 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以在 pdb 中运行 pip。这是 ipython 中的一个示例:
>>> import pip
>>> import pdb
>>> pdb.run("pip.main()", globals())
(Pdb) s
--Call--
> /usr/lib/python3.5/site-packages/pip/__init__.py(197)main()
-> def main(args=None):
(Pdb) b /usr/lib/python3.5/site-packages/pip/baseparser.py:146
Breakpoint 1 at /usr/lib/python3.5/site-packages/pip/baseparser.py:146
(Pdb) c
> /usr/lib/python3.5/site-packages/pip/baseparser.py(146)__init__()
-> if self.files:
(Pdb) p self.files
['/etc/xdg/pip/pip.conf', '/etc/pip.conf', '/home/andre/.pip/pip.conf', '/home/andre/.config/pip/pip.conf']
这里唯一的技巧是查找 baseparser 的路径(并知道文件在那里)。如果您还不知道这一点,您可以简单地单步执行程序或阅读源代码。这种类型的探索应该适用于大多数 Python 程序。
原文由 André Laszlo 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答873 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
对于 10.0.x 及更高版本
有新的
pip config
命令,用于列出当前配置值(正如@wmaddox 在评论中指出的那样)获取 pip 查找配置文件的位置的列表
10.0.x 之前
你可以启动 python 控制台并执行。 (如果你有 virtaulenv 不要忘记先激活它)
create_main_parser
is function that createsparser
which pip uses to read params from command line(optparse
) and loading configs(configparser
)可能的配置文件名在
get_config_files
中生成。包括PIP_CONFIG_FILE
环境变量(如果已设置)。parser.config
get_config_files
RawConfigParser
parser.config.read