Windows10下如何让pip安装到Program Files而非Appdata?
问题描述
我将Python安装在了Program Files目录下,但执行pip install时,包却被安装到了Appdata用户文件夹中,还会提示路径不符的信息。在CMD中执行where python得到以下结果:
C:\Windows\system32>where python C:\Program Files\Python311\python.exe C:\Users\Me\AppData\Local\Microsoft\WindowsApps\python.exe
我推测pip是为Appdata下的Python可执行文件安装包,而这些文件并非我创建或需要的。Appdata文件夹中有3个python.exe:python、python 3.7、python 3。
问题原因
C:\Users\Me\AppData\Local\Microsoft\WindowsApps里的python.exe是微软商店版本的Python占位程序,它在系统环境变量中的优先级高于你安装在Program Files里的Python,导致执行python或pip命令时,系统优先调用这个商店版本的程序。- 微软商店版Python默认采用用户级安装模式,安装的包会存放在用户目录的
Appdata下,和你手动安装的全局Python环境不兼容,因此会出现路径不符的提示。
解决办法
方法1:调整环境变量优先级
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」的
Path列表中,找到C:\Program Files\Python311和C:\Program Files\Python311\Scripts(pip所在目录),将它们移到C:\Users\Me\AppData\Local\Microsoft\WindowsApps条目上方 - 保存设置后,关闭所有CMD窗口并重新打开,执行
where python确认Program Files下的Python排在第一位即可
方法2:直接指定目标Python路径执行pip
每次安装包时,直接用你想要的Python完整路径调用pip,避免系统调用错误的版本:
C:\Program Files\Python311\python.exe -m pip install 你的包名
或者直接调用对应路径下的pip程序:
C:\Program Files\Python311\Scripts\pip.exe install 你的包名
方法3:卸载微软商店版Python
- 打开「设置」→「应用」→「应用和功能」
- 在应用列表中找到所有微软商店版本的Python(比如Python 3.7、Python 3),点击卸载
- 重启CMD后,执行
where python只会显示你安装在Program Files里的版本,此时执行pip install就会将包安装到全局目录
内容的提问来源于stack exchange,提问作者SERGIO
相关产品推荐
相关产品推荐

