是否有可能获得pip来打印它正在使用的配置?

Ale*_*der 37 python pip

有没有办法让pip打印它将尝试使用的配置?出于调试目的,知道以下内容将是非常好的:

  1. config.ini文件位于正确的位置,pip正在查找它们.
  2. 配置设置的优先级按照人们对文档的期望处理

Sar*_*iev 46

适用于10.0.x及更高版本

有一个新pip config命令,用于列出当前配置值

pip config list
Run Code Online (Sandbox Code Playgroud)

(正如@wmaddox在评论中指出的那样)获取pip查找配置文件的位置列表

pip config list -v
Run Code Online (Sandbox Code Playgroud)

预10.0.x

你可以启动python控制台并执行.(如果你有virtaulenv不要忘记先激活它)

from pip import create_main_parser
parser = create_main_parser()
# print all config files that it will try to read
print(parser.files)
# reads parser files that are actually found and prints their names 
print(parser.config.read(parser.files))
Run Code Online (Sandbox Code Playgroud)

create_main_parser是一个函数,它创建了parser哪个pip用于从命令行(optparse)读取params 并加载configs(configparser)

在中生成配置的可能文件名get_config_files.PIP_CONFIG_FILE如果设置,则包括环境变量.

parser.configRawConfigParser所有生成的文件名get_config_files传递给的实例parser.config.read .

尝试读取并解析文件名列表,返回已成功解析的文件名列表.如果文件名是字符串,则将其视为单个文件名.如果无法打开文件名中指定的文件,则将忽略该文件.其设计使您可以指定潜在配置文件位置的列表(例如,当前目录,用户的主目录和某些系统范围的目录),并且将读取列表中的所有现有配置文件.如果不存在任何命名文件,则ConfigParser实例将包含空数据集.需要从文件加载初始值的应用程序应在调用任何可选文件的read()之前使用read_file()加载所需的文件:

  • 我认为这很有用,但它似乎只是打印它可能使用的文件。例如,如果我在 Mac 上运行它,我会得到 `['/Library/Application Support/pip/pip.conf', '/Users/myuser/.pip/pip.conf', '/Users/myuser/Library/ Application Support/pip/pip.conf']` 但这些文件实际上都不存在。是否有一些日志记录或任​​何东西可以让 pip 打印出它试图读取的文件以及是否成功执行此操作? (2认同)