惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
K
Kaspersky official blog
A
Arctic Wolf
Attack and Defense Labs
Attack and Defense Labs
L
LINUX DO - 热门话题
N
News | PayPal Newsroom
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
Lohrmann on Cybersecurity
PCI Perspectives
PCI Perspectives
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
W
WeLiveSecurity
Know Your Adversary
Know Your Adversary
博客园 - Franky
T
Tenable Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Help Net Security
Help Net Security
WordPress大学
WordPress大学
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
S
Security Affairs
J
Java Code Geeks
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
NISL@THU
NISL@THU
O
OpenAI News
The Cloudflare Blog
月光博客
月光博客
Google Online Security Blog
Google Online Security Blog
V
V2EX
罗磊的独立博客
美团技术团队
博客园 - 三生石上(FineUI控件)
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyberwarzone
Cyberwarzone
L
LINUX DO - 最新话题
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏

阿猪的博客

如何使用CNB构建Hexo项目并部署到腾讯云COS 好坑爹!派息后买入的股票怎么也扣股息税? 游哈尔滨 跨年往事 安装Ta-Lib时报错"Could not build wheels" 网站被恶意镜像了该怎么办 延迟退休正式到来!来看看有什么规定 我的基金怎么就被强制卖出了? Hexo-AlgoliaSearch插件报错“Error has occurred during indexing posts” 找工作避坑不完全指南 办理信用卡应该注意什么 华为Pad开启了“共享至电脑”,但是Windows下无法正常访问 webdriver-manager报错一例 习大大2024年新年贺词 号外!号外!Twikoo可以直接屏蔽垃圾评论啦! 如何将Coding的代码仓同步到Github 博客被攻击了 华为Pad开启了“共享至电脑”,但是Ubuntu下无法正常访问 如何恢复Etcher刻录过的U盘 如何在Ubuntu下快速切换网络代理状态 在腾讯云函数中使用Pandas报错`No module named 'numpy.core._multiarray_umath'` 对空的DataFrame使用apply方法未得到预期结果 SQLite中使用关键字作为列名称导致报错 Logging模块重复输出内容的原因及解决方法 如何在Selenium中保持网站的登录状态 如何下载与Chrome浏览器的版本相匹配的ChromeDriver 如何下载旧版本Python的安装包 如何为不同的Python项目自动选择不同的解释器 使用腾讯云函数搭建Web站点 WordPress CORS问题一例 踩坑阿里云函数计算搭建WordPress 在AWS Amplify中部署Jekyll站点 让Chirpy主题支持折叠展示代码块 实现ChatGPT的文字输出效果 python中使用'''注释代码后引起报错 使用python自带的email模块解析邮件 使用pandas_bokeh在地图上显示数据 如何通过复权因子计算复权价格 国内量化平台不完全汇总
Windows无法从环境变量中找到Python的正确位置
阿猪 · 2024-01-15 · via 阿猪的博客

  本文介绍一例由Windows的“应用执行别名”引起的环境变量冲突。

一、问题场景

  上个月给Surface重装了一次操作系统。因为之前Python安装在非系统盘,安装后的程序文件都还在,所以阿猪不打算去Python官网下载Windows Installer进行重新安装,而是继续使用原来留下来的程序文件。

  打开CMD,将当前路径切换到之前安装Python的根目录,然后运行python.exe,可以正常显示Python的信息,说明Python是正常的。按理说,只需要手工编辑环境变量,为path这个变量新建一条记录,写入Python的路径就可以正常使用了。

  但是偏偏出了幺蛾子,不起作用。一些靠环境变量来寻找Python的脑残程序提示未安装Python,在CMD中直接运行python命令会跳转到Windows应用商店的Python下载页面。

二、原因

  经过一番研究,最终发现罪魁祸首是Windows的“应用执行别名”。按照阿猪的理解,它相当于一个专门针对Windows应用(即Windows应用商店版的程序)的“环境变量”或者“快捷方式”管理程序。

  在Windows左下角的“运行”或者“搜索”框中输入`管理应用执行别名`并按下回车键,就可以打开“管理应用执行别名”的界面,我们可以看到有两行分别是“python.exe”和“python3.exe”,并且处于开启状态。当处于开启状态时,Windows就会向`%USERPROFILE%\AppData\Local\Microsoft\WindowsApps`这个目录添加一个相同名字的文件,它的作用相当于一个快捷方式。

  在Windows环境变量的path这个变量中,%USERPROFILE%\AppData\Local\Microsoft\WindowsApps这条记录默认是在第一行的位置。所以我们当在CMD中运行python命令后,Windows会最先查看这个目录中是否存在python.exe这个文件。这就导致Windows看到管理应用执行别名创建的python.exe文件后,就会运行这个文件,并且终止继续在path变量的其他路径中寻找。

  当使用Python官网的Windows Installer或者从Windows应用商店安装Python时,管理应用执行别名可以正确识别出Python已经安装,运行python命令后可以正常启动Python。但是阿猪重装操作系统后,管理应用执行别名就会认为这台电脑还没有安装Python,并且打开Windows应用商店的Python下载页面。

三、解决方法

1、方法1:在“应用执行别名”中的关闭Python的别名设置

  直接在“管理应用执行别名”中关闭与Python有关的两个选项。这样Windows就会从%USERPROFILE%\AppData\Local\Microsoft\WindowsApps目录中删除同名的文件,从而可以确保可以继续在path变量的其他路径中寻找python.exe

2、方法2:修改环境变量中的顺序
将Python路径的那条记录向上移动到%USERPROFILE%\AppData\Local\Microsoft\WindowsApps这条记录之上。
道理是一样的,直接让Windows最先查找正确的路径,找到python.exe后自然就不会与%USERPROFILE%\AppData\Local\Microsoft\WindowsApps发生冲突了。

版权声明: 未经书面授权许可,任何个人和组织不得以任何形式转载、引用本站的任何内容。本站保留追究侵权者法律责任的权利。