你在 PyCharm 里建好项目,解释器也选好了,顺手在底部 Terminal 敲下 pip install requests,回车,屏幕甩出一行红字:'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件。又或者更微妙一点,命令能找到,但装完后项目里还是 ModuleNotFoundError: No module named 'requests'。我见过太多人卡在这一步,问题本身不难,难的是报错种类太多,网上答案又互相矛盾。
这篇记录就围绕“PyCharm 终端里跑 pip 指令报错”展开,把我在 Windows 上排查这类问题用过的思路完整写一遍。我会按报错现象分组讲,从“pip 到底存在于哪个环境”这个根子说起,再到命令找不到、SSL 证书不信任、镜像源配置、conda 和 venv 混用、以及 Win11 上的 Device Guard 拦截这些具体场景。适合刚接触 PyCharm 的初学者,也适合被环境问题反复折磨、想系统梳理一遍的开发者。
1. 先想明白:PyCharm 终端里的 pip 到底是谁家的
1.1 终端默认激活的是项目虚拟环境
很多人忽略了一个前提:PyCharm 创建项目时,默认会帮你新建一个虚拟环境(venv),目录通常叫 .venv 或 venv。当你打开底部 Terminal 时,PyCharm 会自动激活这个虚拟环境,命令提示符前面会出现一个括号:(.venv) PS C:\Users\...> 或 (.venv) C:\Users\...>。
这个括号意味着:你现在敲的所有命令,优先从 .venv\Scripts 这个目录里找可执行文件。pip 之所以存在,多数情况是因为虚拟环境里自带了 pip,而不是因为你系统里的 Python 装了 pip。
如果你打开终端后,前面没有 (.venv) 这个前缀,那说明 PyCharm 没有激活虚拟环境,或者这个项目压根没配虚拟环境。此时你敲 pip install,用的是全局 Python 的 pip,甚至是别的 Python 发行版的 pip。很多“装完了但 PyCharm 运行时报找不到模块”的灵异事件,根源就在这里。
1.2 三个常见终端,激活逻辑完全不同
PyCharm 的 Terminal 默认调用的是系统 shell。Windows 上最常见的是 PowerShell,还有 CMD,配置过 WSL 的则可能直接打开 WSL 终端。同一个虚拟环境,在不同 shell 里的激活机制完全不同:
| Shell 类型 | 虚拟环境激活脚本 | 常见失败原因 |
|---|---|---|
| CMD | .venv\Scripts\activate.bat |
路径被截断、终端没重新打开 |
| PowerShell | .venv\Scripts\Activate.ps1 |
执行策略 Restricted,脚本被禁用 |
| WSL | source .venv/bin/activate |
Windows 路径和 Linux 路径不互通 |
PowerShell 下最常见的坑是报错“无法加载文件 ...\Activate.ps1,因为在此系统上禁止运行脚本”。这不是 PyCharm 的问题,是 Windows 默认执行策略太保守。要在当前用户下放开限制,在 PowerShell 里执行一次:
powershell复制Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
这个命令只对当前用户生效,不影响系统其他用户。改完之后,重新打开 PyCharm 的 Terminal,虚拟环境就能正常激活了。
1.3 一个命令验证 pip 的真身
不管报什么错,我建议你先把“当前这行的 pip 到底是谁”这个问题查清楚。在终端里执行:
powershell复制where.exe pip
注意这里用的是 where.exe,不是 where。where 在某些 PowerShell 环境里是 Where-Object 的别名,容易产生歧义。where.exe pip 会把 PATH 里所有能找到的 pip 相关文件路径列出来。
正常情况下,你应该看到虚拟环境里的 pip.exe,比如:
text复制C:\Users\Administrator\PyCharmProjects\pythonProject\.venv\Scripts\pip.exe
如果列出来的是:
text复制C:\Python312\Scripts\pip.exe
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Scripts\pip.exe
那说明当前环境根本没有被激活,或者 PyCharm 项目解释器没有正确关联到虚拟环境。这个判断直接决定你后面怎么修。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. “找不到 pip”这类报错:从现象到根因的完整排查链路
2.1 两种最常见的报错文案
PyCharm 终端无法识别 pip 命令时,文案取决于你用的是什么 shell。
CMD 下是:
text复制'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件。
PowerShell 下是:
text复制pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
这两句话翻译成大白话就是:当前 shell 在你配置的 PATH 路径里,找不到一个名叫 pip 的可执行文件。
还有一种变体,看起来很像“找不到”,但实际上是“找到的不是你想要的”,比如 python.exe -m pip 能跑,但裸敲 pip 不行。这种情况意味着 Python 解释器在 PATH 里,但 Scripts 目录不在。
2.2 五步排查链路
我把自己排查这类问题的顺序固定成了五步,每一步都能缩小问题范围。
第一步,看终端前缀有没有 (.venv)。有,跳到第三步;没有,先检查 PyCharm 的项目解释器设置。点击右下角解释器名称,或者进入 Settings -> Project -> Python Interpreter,确认当前选择的是项目虚拟环境。如果这里显示的是全局 Python,那终端没激活虚拟环境就是正常的。
第二步,如果解释器设置没问题,但终端还是没激活,重新打开一次 Terminal。PyCharm 有时在项目创建后第一次打开终端会没来得及同步环境变量,重开一次能解决不少玄学问题。
第三步,执行 python -m pip --version。如果这条能正常输出版本号,说明 Python 解释器在 PATH 里,只是 pip.exe 所在的 Scripts 目录不在。接着跑:
powershell复制python -m pip install requests
先用这个方式绕过 PATH 问题,保证能装包,后面再慢慢修补 PATH。
第四步,如果 python 本身也找不到,那就是 Python 解释器没进 PATH。检查 PyCharm 文件菜单里有没有“无效的 Python 解释器”字样,有的话删掉重新添加。系统层面的 PATH 修改留到后面统一做。
第五步,进入 Settings -> Tools -> Terminal,看 Shell path 有没有被改成奇奇怪怪的路径,比如指向某个不存在的 PowerShell 副本。正常情况下这里应该写 powershell.exe 或 cmd.exe。我见过有人装完第三方终端工具后,这里被改成了工具的路径,导致终端无法正常激活虚拟环境。
2.3 为什么 python -m pip 是万能钥匙
python -m pip 和裸 pip 的本质区别是:前者明确告诉 Python 解释器“把 pip 这个模块跑起来”,后者是去 PATH 里找一个叫 pip 的可执行文件。
可以这样理解:你在一栋楼里找人,python -m pip 是拿着楼里住户名单一个个门牌号找,pip 是站在楼下喊“有没有叫 pip 的人”。前者只需要你找对楼(Python 解释器),后者还要求那个人正好站在能听见你喊话的位置(PATH 里)。
因为这个特性,python -m pip install xxx 几乎可以避免所有“找错 pip”的问题。我后来养成了一个习惯:凡是网上教程里让我敲 pip install,我统一替换成 python -m pip install,特别是在 PyCharm 里操作时。这样做还有一个额外好处:如果当前虚拟环境有问题,python -m pip 会立刻报出解释器相关的错误,而不是抛一个让人摸不着头脑的“无法识别”,排查起来更加直接。
3. SSL 证书报错和换源那点事:把 could not fetch url 一次性说透
3.1 这句报错到底在说什么
还有一类高频报错长这样:
text复制Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/
字面意思是:pip 在向 PyPI 官方源发起 HTTPS 请求时,SSL 证书验证失败,连接被中断。
这里有个容易误判的点。很多新手以为这是网络问题,实际上它可能是系统时间问题。TLS 证书有有效期,如果你的系统时间比真实时间慢了好几年,证书校验就会失败。我在帮人排查时,第一个动作永远是让用户看右下角时间对不对。这一步简单到离谱,却能解决相当一部分“突然所有 pip 命令都不好使”的问题。
另一个常见原因是你所在网络环境有代理或防火墙在中间做 TLS 拦截。公司网络、校园网、某些开启了“安全上网”功能的杀毒软件,都会干这种事。识别方法很简单:浏览器访问 https://pypi.org 如果也提示证书不安全,那就不是 pip 的问题,是整台机器的信任链被网络设备动了手脚。
3.2 按顺序试:时间、升级、换源
遇到 SSL 报错,我一般按下面的顺序处理,每做一步就重跑一次命令,避免瞎折腾:
- 检查系统时间,不对就先同步时间。
- 升级 pip 本身。旧版 pip 用的 OpenSSL 版本太老,和新的服务端 TLS 策略不兼容时也会报证书错误。执行:
powershell复制python -m pip install --upgrade pip - 如果官方源连不上,切换国内镜像源。临时切换的话,直接加
-i参数:powershell复制python -m pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple - 镜像源也有证书问题时,看是不是公司网络对国内域名也做了拦截。如果是,直接找网络管理员处理,不要在终端里硬扛。
我把几个稳定可用的镜像源整理成了表格,方便你按需选用:
| 镜像源 | 地址 |
|---|---|
| 清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple/ |
| 腾讯云 | https://mirrors.cloud.tencent.com/pypi/simple |
| 中科大 | https://pypi.mirrors.ustc.edu.cn/simple |
需要注意的是,镜像源只是把 PyPI 的包同步了一份过来,不代表所有包都永远是最新的。某些冷门包或刚发布的新版本,镜像源可能还没同步,等一两个小时再试,或者临时切回官方源装。
3.3 一劳永逸的 pip.ini 全局配置
每次敲命令都带 -i https://... 太累,我建议直接把镜像源写进 pip 的全局配置里。
Windows 下,pip 读取的配置文件路径在 %APPDATA%\pip\pip.ini。打开资源管理器,地址栏输入 %APPDATA% 回车,看看有没有 pip 文件夹,没有就新建一个,然后在里面新建 pip.ini 文件,写入:
ini复制[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
Mac/Linux 下对应的路径是 ~/.pip/pip.conf 或 ~/.config/pip/pip.conf,内容一样。
写完保存,重新打开终端,执行 python -m pip config list 可以看到当前的 index-url 已经变成镜像源了。以后所有 pip 安装命令默认走镜像源,不再需要手动加参数。
顺便说一句,网上流传的“修改 pip search 的仓库”这类教程,现在已经没有意义了。PyPI 官方早在 2020 年就移除了 pip search 命令,因为 XML-RPC 接口被滥用得厉害。想找包直接去 PyPI 官网搜索页查,或者用 pip index versions 包名 查看可安装的版本列表。
3.4 为什么不建议长期用 --trusted-host
网上很多教程遇到 SSL 报错,会教你直接加参数跳过验证:
powershell复制python -m pip install requests --trusted-host pypi.org --trusted-host files.pythonhosted.org
我必须说清楚,这个参数确实能绕过去,但它做的事情是“告诉 pip 不要验证这几个域名的证书”。长期这么干,等于让 pip 在明文状态下跑,中间如果有人劫持了连接,给你的不是正经包而是恶意脚本,pip 也会毫不犹豫地接受。
我的建议是:--trusted-host 只用来解决内网自建源的临时验证问题,比如公司内部搭建的 PyPI 私有源没有有效证书时,这是最快的调试手段。正式使用,应该找管理员把私有源的 CA 证书安装到系统信任链里,然后用 HTTPS 正常访问。
如果配置了镜像源后,升级 pip 时报错:
text复制Could not install requirement pip from https://pypi.tuna.tsinghua.edu.c...
大多数情况下是镜像源的同步问题,或者镜像源不允许覆盖 pip 自身。遇到时,升级 pip 临时切回官方源:
powershell复制python -m pip install --upgrade pip -i https://pypi.org/simple
升级完继续用镜像源装其他包,互不影响。
另外,pip 输出末尾经常出现这条提示:
text复制[notice] A new release of pip is available: 25.0.1 -> 26.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip
这只是一个提示,不是报错。意思是你当前 pip 版本不是最新的,有空可以升级。很多人看到 [notice] 以为是红字错误,白白焦虑一通。记住这个特征,以后就不会误判了。
4. 换个环境换个源还是不对:环境错乱、Device Guard 与权限三类坑
4.1 黄金规则:python -m pip install 才能保证装进当前解释器
我前面已经强调过 python -m pip install 的好处,但这里要从“环境错乱”的角度再深挖一层。
PyCharm 里有两个地方显示解释器:一个是项目设置里的 Python Interpreter,一个是终端里实际激活的环境。正常情况下这两个是同一个,但只要你动过下面任何一个操作,它们就可能分家:
- 在 PyCharm 设置里手动切换过解释器,但 Terminal 缓存没刷新
- 同一个项目曾经配过多个解释器,后来删了其中一个
- 同时装了 Anaconda 和官方 Python,PATH 里的
python指向 A,PyCharm 里配的是 B
如果你在终端里用裸 pip 安装,装进去的是“PATH 里那个 pip 所属的环境”,不一定是“PyCharm 当前使用的解释器”。只有 python -m pip install 才能保证:你指定的这个 python 解释器,把包装进它自己的 site-packages 里。
所以我把这条当成唯一不容妥协的规则:在 PyCharm 终端里安装任何包,一律使用 python -m pip install 包名。
4.2 conda 和 venv 混用:装进去了但 import 不到
如果你在 PyCharm 里用的是 Anaconda 提供的解释器,同时又手动创建过 venv,那么混用的概率极高。举一个我实际遇到过的情况:
项目解释器选择了 Anaconda 自带的 python.exe,路径类似 C:\ProgramData\anaconda3\python.exe。但终端打开后,命令行前缀显示 (.venv),说明 PyCharm 激活的是项目虚拟环境。这时候你执行 pip install numpy,包装进了 .venv\Lib\site-packages。PyCharm 运行项目时用的是 Anaconda 解释器,它去 Anaconda 的 site-packages 里找 numpy,自然找不到。
对应解法是先统一环境。要么在 PyCharm 设置里把项目解释器改成虚拟环境那个,以后包装进 venv;要么把终端里虚拟环境的激活禁用,让 pip 直接对应 Anaconda。最省事的方案其实是用 PyCharm 自带的包管理面板,这个我在后面第 5 节详细讲。
另外提醒一下,Anaconda 环境下优先用 conda install 而不是 pip install。conda 会处理依赖版本兼容性,pip 很多时候只做“装进去”这一件事,版本冲突全靠你自己判断。混用 conda 和 pip 装同一个包的不同版本,是我见过的另一大混乱来源。
4.3 Device Guard 策略拦截怎么识别
Win11 上有一类报错长这样:
text复制pip 已被组织的 Device Guard 策略阻止
或者英文版提示:
text复制This program is blocked by group policy. Contact your system administrator.
看到“Device Guard”或者“被组织的策略阻止”,可以立即判断:这不是 pip 本身坏了,也不是 PyCharm 的问题,而是系统层面的执行策略在拦截。
Device Guard 是 Windows 的企业级安全功能,配合 WDAC 策略,可以限制哪些程序能在系统里运行。被拦截最典型的是未签名的可执行文件、脚本文件、以及某些从网上下载安装的工具。pip 的可执行文件通常没有微软签名,在某些开启了严格策略的企业版系统上就会被拦。
如果你用的是自己的电脑,先检查两件事:第一,电脑是不是装了企业安全软件,比如奇安信、深信服、企业版火绒之类,这类软件有时会主动启用类似策略;第二,打开 Windows 安全中心,看“设备安全性”里的内核隔离是否开启,尝试关闭“内存完整性”后重启再试一次。
如果你用的是公司配发的电脑,尤其是加入了域环境的,那就别跟系统策略硬刚了。联系 IT 部门,申请一台开发机白名单是正道。特别要提醒一句:不要看到网上有人说改注册表、改组策略绕过 Device Guard 就动手,这些操作很容易把系统搞到无法开机,而且企业环境里私自绕过安全策略可能涉及合规问题。
4.4 权限不足时该不该用 --user
还有一种情况,pip 安装时报:
text复制error: could not create '...\Scripts\pip.exe': Access is denied
或者提示:
text复制PermissionError: [WinError 5] 拒绝访问
原因通常是当前 Python 安装在系统级目录,比如 C:\Program Files\Python312,普通用户对这个目录没有写权限。这时候有两个方向。
第一是升级到系统管理员权限运行 PyCharm,但我不推荐这种粗暴方式。管理员权限跑 PyCharm,意味着所有包都往系统目录写,以后项目一多,依赖冲突会闹得很难看。
第二是加 --user 参数,让 pip 把包装到当前用户的目录里:
powershell复制python -m pip install requests --user
--user 装的位置一般是 C:\Users\用户名\AppData\Roaming\Python\Python312\site-packages,不需要管理员权限,也不会污染系统 Python。
但说实话,--user 只适合临时救急。长期项目开发,还是应该用虚拟环境。虚拟环境本身就是为隔离依赖设计的,创建在项目目录里,目录权限完全归你自己,不会有任何权限报错,这才是正解。
5. 顺着热搜往下说:缺失节点、CUDA 状态和 PyTorch 系依赖
5.1 缺失节点那条命令,重点在“装到哪个环境”
最近很多人在搜索“要安装缺失的节点,请先在你的 python 环境中运行 pip install -u --pre comfyui-m”这条报错。这里有个细节,命令里的 -u 其实应该是 -U,也就是 --upgrade 的意思。下载回来的对应脚本、文档里可能排版有误,照着敲一敲小写 u 不一定报错,但意思完全不对。
更关键的问题不是大小写,而是“你的 python 环境”到底指哪个环境。ComfyUI 的 Windows 便携版自带的是一套独立的 Python,目录通常在 ComfyUI_windows_portable\python_embeded 下面。如果你在 PyCharm 的 venv 里执行 pip install comfyui-m,依赖装进了 venv,ComfyUI 启动时用的是它自己的 embedded Python,根本不会读取 venv 里的包,报错自然原封不动留在那里。
正确做法是:去 ComfyUI 的根目录打开终端,执行:
powershell复制python_embeded\python.exe -m pip install -U --pre comfyui-m
如果你坚持要用 PyCharm 来跑 ComfyUI 相关的代码,就在 PyCharm 的解释器设置里把解释器指向 python_embeded\python.exe,然后重新打开终端,让虚拟环境的激活机制失效,再执行安装命令。
说这个例子的目的,是想点出一个很容易被忽略的事实:很多“pip 报错”表面上是命令问题,实际上是“环境没对应上”。pip 本身执行成功了,但包装进了错误的地方。排查时先问自己一句:我现在这个终端对应的解释器,到底是不是要装包的那个解释器?
5.2 CUDA available: false 不是 pip 的锅,但和 pip 装的版本有关
还有一个高频搜索词是:
text复制cuda available: false cudnn available: false cudnn cannot be...
这句话经常出现在 PyTorch 或 TensorFlow 项目启动时的日志里,不是 pip 报错,但它通常是 pip 安装之后才暴露出来的。
CUDA available: false 的意思是:当前环境中,PyTorch 无法调用 NVIDIA 显卡做 GPU 计算。可能的原因有三类:第一,你装的是 CPU 版的 PyTorch,它压根不包含 CUDA 支持代码;第二,电脑没有 NVIDIA 显卡或者驱动版本太低;第三,显卡驱动是新的,但 PyTorch 版本太老,对应不上。
很多人在这一步又回头怪 pip,说“我明明 pip install torch 成功了”。这里有误解。pip install torch 默认装的是 CPU 版本,要想装 GPU 版本,必须指定正确的安装源和参数。PyTorch 官网根据你的 CUDA 版本生成对应的安装命令,比如:
powershell复制pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
这里的 --index-url 指定的是 PyTorch 自己的 Wheel 仓库,而不是普通的 PyPI 镜像源。这就是为什么你从清华源装出来的 torch 总是 CPU 版,指令本身没报错,但结果不是你要的。
所以,遇到 CUDA 相关报错时,先别急着把锅扣在 pip 头上。去 PyTorch 官网,选好系统和 CUDA 版本,复制它给出的命令,再配合 python -m pip install 使用,一次到位。
5.3 新手友好路线:PyCharm 的 Python Packages 面板
如果你不想记这么多 pip 命令,也不想纠结环境对应关系,PyCharm 其实内置了一个图形化的包管理入口,叫 Python Packages。
打开方式很简单:PyCharm 底部工具栏找到 Python Packages 窗口,或者通过菜单 View -> Tool Windows -> Python Packages 打开。界面左侧是搜索框,输入包名,比如 pandas,右侧会显示版本信息、依赖项、简介。选中版本,点 Install 按钮,PyCharm 会自动把包安装到当前项目的解释器里。
这个面板最大的价值在于:它安装时绑定的解释器就是项目和设置里选择的那个,不存在 PATH 混乱的问题。你不用先想“我现在在哪个环境”,它天然对应对的解释器。
我在给新手演示“怎么在 PyCharm 里装 pandas 和 openpyxl”时,都会直接推荐这个面板。搜索 pandas,点 Install,PyCharm 会连带把 openpyxl 等依赖一起装上,省去在终端里一条条敲命令的麻烦。
当然,这个面板的底层还是调 pip。如果 pip 源没配好,面板安装同样会报 SSL 或网络错误。遇到这种问题,回到第 3 节改 pip.ini,改完重启 PyCharm 生效。
6. 我把这些教训整理成了几条日常习惯
6.1 用 python -m pip 替代裸 pip
这是我对所有项目的一贯要求,包括我自己写的脚本。不管是安装新包、升级包还是卸载包,终端里永远只敲 python -m pip,不敲裸 pip。原因前面讲了很多,这里再补一条亲测的好处:当你同时装了多个 Python 版本时,python 指向的是当前激活环境里的解释器,python -m pip 一定不会装偏。
6.2 报错先分大类:网络、权限、路径、依赖
我见过很多人遇到报错后的第一反应是把完整日志贴到搜索引擎里,然后逐条帖子试。这样效率太低。我的习惯是先把报错分成四个大类。
第一大类是网络问题,典型特征是 URL、SSL、连接超时、proxy 这类词汇,优先检查时间、代理、换源。第二大类是权限问题,特征是 Access is denied、PermissionError、被策略阻止,优先查管理员权限和系统策略。第三大类是路径问题,特征是“不是内部或外部命令”“无法识别”,优先查 PATH 和环境变量。第四大类是依赖问题,特征是 could not find a version、conflicts、No matching distribution,优先查 Python 版本和已装包的版本兼容性。
大类分对了,搜索关键词自然就精准了。比如 conflict 相关的报错,搜“pip conflict python version”比搜整段报错文案有效得多。
6.3 新环境先做三件事再开工
每次换新电脑、重装系统,或者新建一个项目,我都会先花一分钟做三件事,能避开后续大部分坑。
第一,运行 python --version 和 python -m pip --version,确认解释器和 pip 版本都正常。
第二,运行 python -m pip config list,确认镜像源已经配置好。没配置的话,按第 3 节的步骤写 pip.ini。
第三,运行 python -m pip install --upgrade pip,把 pip 升级到当前环境可用的最新版本。这一步能避免很多旧版 pip 的 TLS 兼容问题。
这三件事做完,再开始装业务依赖。虽然多花一分钟,但后续节省的时间远不止一分钟。
6.4 顺手识别一些“看起来像pip但不是pip”的报错
最后分享一个实用的经验:有些报错虽然出现在 PyCharm 终端里,甚至内容里也带了 pip 字样,但来源根本就不是 pip。
最常见的例子是 git clone 报错:
text复制git clone packet_write_wait: Connection to 192.168.1.138 port 22: broken pipe
这是 SSH 连接被网络设备或服务器端断开,跟 pip 毫无关系。处理方法是重试,或者把仓库地址换成 HTTPS 形式再 clone。
另一个例子是启动 AI 绘图或大模型相关项目时,日志里出现 pip install -U --pre comfyui-m 这类提示,这其实是程序自己在引导用户安装缺失组件,不是 pip 报错。
判断原则很简单:只要这条命令不是你手动输入后直接产生的报错,而是程序内部输出的日志,那就先别急着用 pip 的思维去修,回到程序本身的文档和日志上下文里找答案。这样能少走很多弯路。
我个人在实际操作中的体会是,PyCharm 终端里的 pip 报错,七成以上不是 pip 本身坏了,而是环境和预期不一致。把“当前终端到底用的哪个 Python、哪个 pip”这个问题刻在脑子里,再遇到任何安装类报错,先验证这一点,你的排查路径就会清晰很多。
