Python - 在 Windows 中找不到 pip.ini 或 pip.conf
Posted
技术标签:
【中文标题】Python - 在 Windows 中找不到 pip.ini 或 pip.conf【英文标题】:Python - cant find pip.ini or pip.conf in Windows 【发布时间】:2015-04-01 10:14:24 【问题描述】:我在我的 Win7 机器上安装了 Python 2.7.8,它已经预装了 pip。 我已经成功地从 pip 安装了新包,现在我需要在安装中添加自定义存储库 url点子列表
为此,我需要根据Official Manual 修改%APPDATA%\pip\pip.ini
中的pip.ini
但是,任何地方都没有pip
文件夹(不在Roaming
中,不在Local
中,不在LocalLow
中)
也不存在PyPa
文件夹:C:\ProgramData\PyPA\pip\pip.conf
你能告诉我在哪里搜索pip.ini
?如何将国外仓库添加到安装列表中?
【问题讨论】:
您是否尝试过创建新文件%APPDATA%\pip\pip.ini
?
为什么 pip 不支持显示此信息的命令?
【参考方案1】:
已经 7 年了,我认为现在对大多数人来说有一个更好的答案——但这确实取决于 pip 的版本。对于我最近使用的点数:
$ pip config -v debug
列出它正在寻找的位置,您可以决定是哪个位置
对您的想法最有用。它看起来确实是最近的
更改:在我使用 pip 20.1 拥有的一年前的 docker 图像上
我得到“错误:需要一个操作(编辑、获取、列出、设置、取消设置)
执行。”在那个系统上,pip config -v list
给出了它会尝试的文件列表,这应该是 pip.ini 位置的“全局”、“用户”或“站点”变体。
对于 Windows 10,对于 3.9.6 和 3.6.8 上的 pip 21.2.4,我得到下面的响应,pip config -v debug
,而pip config -v list
是静默的(除非找到 pip.ini)。
global:
C:\ProgramData\pip\pip.ini, exists: False
site:
c:\py\myvenv\pip.ini, exists: False
user:
C:\Users\myname\pip\pip.ini, exists: False
C:\Users\myname\AppData\Roaming\pip\pip.ini, exists: False
从我于 2021 年 6 月从 dockerhub 下载的带有 pip 21.2.2 和 python 3.6.10 的图像:
pip config -v debug
env_var:
env:
global:
/etc/xdg/pip/pip.conf, exists: False
/etc/pip.conf, exists: True
global.extra-index-url: http://trynexs:8081/repository/repo_group/simple
site:
/usr/local/pip.conf, exists: False
user:
/home/tanhauser/.pip/pip.conf, exists: False
/home/tanhauser/.config/pip/pip.conf, exists: False
【讨论】:
【参考方案2】:我知道这有点晚了,但是,这个帖子在搜索时排名很高。在虚拟环境内部 pip.ini 也可以在虚拟环境的根目录中。来自docs 和https://pip.pypa.io/en/stable/user_guide/?highlight=pip.ini#configuration
Inside a virtualenv:
On Unix and macOS the file is $VIRTUAL_ENV/pip.conf
On Windows the file is: %VIRTUAL_ENV%\pip.ini
【讨论】:
谢谢,以后可能会派上用场。【参考方案3】:您可以要求pip
列出有效位置,而不是检查知名位置列表:
pip config -v list
趣事
在同一台机器上,使用相同的 pip 版本,有效位置可能会根据实际的 Python 版本而有所不同。
环境:Win 7 x64,HOME
环境变量设置为D:\Home
Python 3.7.3:
> pip config -v list
For variant 'global', will try loading 'C:\ProgramData\pip\pip.ini'
For variant 'user', will try loading 'D:\Home\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\foobar\AppData\Roaming\pip\pip.ini'
For variant 'site', will try loading 'C:\Python37\pip.ini'
Python 3.8.0:
> pip config -v list
For variant 'global', will try loading 'C:\ProgramData\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\foobar\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\foobar\AppData\Roaming\pip\pip.ini'
For variant 'site', will try loading 'C:\Python38\pip.ini'
【讨论】:
pip config -v list
或 pip config --verbose list
不行吗?
@dumbledad 我手头没有 Windows 机器,所以无法检查。在 Linux 上,它适用于 -v
@dumbledad 谢谢,它在 Windows 上也可以正常工作
这真的很有帮助,而且可以跨平台使用,谢谢。【参考方案4】:
不要先猜测检查是否有任何默认的全局/本地配置,pip使用以下命令读取: p>
pip config list
这将提供 python 加载的默认配置的所有详细信息。
如果上述命令没有给出任何输出,请尝试使用以下命令查找 pip 尝试查找 全局配置 文件的位置:
pip config --editor <path to editor of your choice> edit
上面的命令会打开pip默认读取的配置文件,否则会报错,说文件不存在。
如果出现错误,请继续创建错误中显示的确切目录和文件结构。创建文件后,请进行更改,例如
[global]
cert = /path/to/base64/ssl/certificate.pem
proxy = http://username:password@ipaddress:port
保存文件,请尝试检查(上面提到的检查命令)是否通过 pip 加载配置。
更多信息请关注pip config documentation
【讨论】:
【参考方案5】:确保您确实有一个pip.ini
文件,而不是pip.ini.txt
。
【讨论】:
确实,只有在终端中检查文件时,您才会注意到这一点! -> 如果您的配置实际上是由 pip 拾取的,那么当您在预配置的配置路径列表之后输入 pip config -v list 时,您还将获得配置文件中指定的变量的打印,例如:global.index-url=' %URL%'【参考方案6】:pip changed the location of the config file in windows starting in pip 6.0pip config docs 说明配置文件的位置如下。
pip --version >= 6(截至 18.1 版尚未再次更改)
%APPDATA%\pip\pip.ini
pip --version
%HOME%\pip\pip.ini
在虚拟环境中
%VIRTUAL_ENV%\pip.ini
全站win7+(同win10)
C:\ProgramData\pip\pip.ini
站点范围的 winxp(注意不支持 windows vista 侧宽)
C:\Documents and Settings\All Users\Application Data\pip\pip.ini
注意:如果 pip 找到多个配置文件,则按以下顺序组合它们:
已读取站点范围的文件
读取每个用户的文件
已读取特定于 virtualenv 的文件
%HOME%\pip\pip.ini
%VIRTUAL_ENV%\pip.ini
C:\ProgramData\pip\pip.ini
C:\Documents and Settings\All Users\Application Data\pip\pip.ini
pip 还添加了一个从 pip 10 开始的配置命令。
pip config --help
【讨论】:
【参考方案7】:终于整理好了。
显然对于Windows用户pip.ini
配置文件没有创建,但是可以手动添加!
只需创建新的%APPDATA%\pip\pip.ini
和自定义存储库的内容:
[install]
find-links = https://<login>:<password>@your.repo.com/custom/url
参考:https://pip.pypa.io/en/stable/user_guide/#config-file
【讨论】:
在 python 3.6 上,它只适用于 C:\ProgramData\pip\pip.conf。 使用 Python 3.8,我必须手动创建pip
文件夹和 pip.ini
文件。我将它用于我们的公司代理设置。
@ValentinGrégoire 你在哪里创建了你的 pip 文件夹,你是如何确保它在启动时被拾取的? pip config -v list 列出一系列变体。
@QHarr,我在这个答案(%APPDATA%\pip\pip.ini
)中建议的地方创建了它。至于被捡起来,我为它祈祷,它奏效了。
@QHarr 查看 alexandrul 的回答。例如,您可以检查没有 [install] 节标题的错误 pip.ini。我只为我的用户安装了 Anaconda。然后, 2xuser variant
和 anaconda variant
都工作(抛出错误)。因为我有用户安装,所以我没有检查global variant
。【参考方案8】:
所有的答案都是部分错误和正确的。
这取决于如何您的系统配置。唯一的方法(对我来说)是在分配 site_config_files
的位置修补 site-packages/pip/locations.py
(在 pip 9.0.1 的第 120 行附近)
打印('##########' + str(site_config_files))
然后运行pip search foo
在我的系统上打印########## ['C:\\ProgramData\\pip\\pip.ini']
,我认为我无法创建/编辑该位置。但它只是奏效了。
顺便说一句,对于我的系统,%APPDATA% 指向C:\Users\MYUSER\AppData\Roaming
,在我的系统上运行pip
时未查看。
【讨论】:
【参考方案9】:Windows 10:
我必须在里面创建“pip”目录
C:\Users\UserName\AppData\Roaming\
然后在“pip”目录中创建 pip.ini 文件:
C:\Users\<username>\AppData\Roaming\pip\pip.ini
没有其他位置适合我。
【讨论】:
【参考方案10】:对我来说(Windows 8,pip 9.0.1,python 3.5.3),正确的路径是
c:\Users\<UserName>\.pypirc <- sic!, even on windows
【讨论】:
【参考方案11】:在 Windows 上 pip.exe 按以下顺序查找“pip.ini”:
C:\ProgramData\pip\pip.ini
C:\Users\<username>\pip\pip.ini
C:\Users\<username>\AppData\Roaming\pip\pip.ini
【讨论】:
我不确定情况是否仍然如此。在我的带有 py3.6.3 的 Win7 机器上,当我尝试添加[list] ...format=columns
时,它仅在放入 APPDATA 时才生效。
那是 2.7,所以你可能是对的。我曾使用 sysinternals procmon 来观察 Python.exe 的运行情况;搜索以访问“pip.ini”。任何人都可以这样做以确保订单仍然相同:docs.microsoft.com/en-us/sysinternals/downloads/procmon
我可以确认一部分。我在C:\Users\<username>\pip\pip.ini
和%APPDATA%\pip\pip.ini
中都放了一个错误的pip.ini。然后pip config -v list
报告了用户名\pip 目录(我忘记了一个节标题)。这表明 username\pip 目录位于 appdata\pip 目录之前。【参考方案12】:
有点晚了,但供参考:
尝试在%USERPROFILE%\pip\pip.ini
(通常为:C:\Users\<username>\pip\pip.ini
)中添加 pip.ini 文件。
【讨论】:
将 pip 文件夹直接放在用户文件夹中是我在 Windows 7 和 Windows 10 上使用 Python 3 的方法。感谢 Moshe 的提示。以上是关于Python - 在 Windows 中找不到 pip.ini 或 pip.conf的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 Windows 8 上安装 netCDF4 时出现“需要 Python 版本 2.7,在注册表中找不到”错误
ffmpeg 错误:在 Windows 中找不到 libnpp