【问题标题】:Python - cant find pip.ini or pip.conf in WindowsPython - 在 Windows 中找不到 pip.ini 或 pip.conf
【发布时间】: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 不支持显示此信息的命令?

标签: windows python-2.7 configuration 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 也可以在虚拟环境的根目录中。来自docshttps://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 listpip 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 找到多个配置文件,则按以下顺序组合它们:

      1. 已读取站点范围的文件
      2. 读取每个用户的文件
      3. 已读取特定于 virtualenv 的文件

      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 variantanaconda 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\&lt;username&gt;\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\&lt;username&gt;\pip\pip.ini)中添加 pip.ini 文件。

              【讨论】:

              • 将 pip 文件夹直接放在用户文件夹中是我在 Windows 7 和 Windows 10 上使用 Python 3 的方法。感谢 Moshe 的提示。
              猜你喜欢
              • 2016-12-16
              • 1970-01-01
              • 2017-05-24
              • 2023-03-05
              • 2018-05-04
              • 1970-01-01
              • 1970-01-01
              • 2020-10-29
              • 2017-02-10
              相关资源
              最近更新 更多