找回密码
 会员注册
查看: 29|回复: 0

Windows下Python环境变量配置问题及解决

[复制链接]

8

主题

0

回帖

25

积分

新手上路

积分
25
发表于 2024-9-10 13:20:25 | 显示全部楼层 |阅读模式
安装python时疑似未勾选自动添加到PATH环境变量,导致cmd窗口无法正确识别python指令,而是会唤起微软商店,推广其python应用(版本:Windows1123H2)。唤起微软商店的罪魁祸首经搜索得知(参考:windows11执行python没有任何反应或拉起应用商店的解决办法)问题在于微软商店已经抢先“注册”了环境变量,也就是有个假的“python”,该变量值放在了用户变量里面(右键“此电脑”->属性->高级系统设置->环境变量):(注:更改完变量值后要点击“编辑环境变量”界面的“确定”,完了之后还要点击“环境变量”界面的“确定”,即编辑界面确定后还需在总览界面点一次确定,才能成功更改变量值)本着不轻易删除自带变量的思想,就需要考虑如何让python路径的变量值优先级高于这个“C:\Users\10653\AppData\Local\Microsoft\WindowsApps”。在这里也产生了疑问,用户变量和系统变量,到底该设置哪一个,他俩又有什么区别呢?用户变量和系统变量区别在CSDN上搜到的博客说:“有的时候我们会看到在用户变量和系统变量中都存在某一个环境变量,比如path,那么path的值到底是用户变量中的值还是系统变量中的值,或者两者都不是呢?答案是两者都不是。path变量的值是用户变量中的值与系统变量中的值的叠加。“”系统环境变量,对所有用户起作用,而用户环境变量只对当前用户起作用。”(参考:windows用户变量和系统变量的区别)这里还是有点含糊,经过进一步搜索得:一般而言,用户变量优先级大于系统变量优先级,但是对于path而言,系统变量的优先级会大于用户变量。该博主也写到,对于除path的其他变量而言,用户变量的值会覆盖系统变量的同名值。(参考:windows下用户变量和系统变量的优先级)自行验证如下,打印path,仔细比对,将发现打印值是系统变量里的值后加上用户变量里的值:但是打印另一个变量TMP的时候,如下面两张图所示,用户变量的值确实覆盖了系统变量的值:结合其他博主自设变量名和变量值进行验证的结果(参考:windows下用户变量和系统变量的优先级),可以得出最终结论:①一般而言,用户变量优先级大于系统变量优先级,用户变量的值会覆盖系统变量的同名值。②对于path而言,系统变量的优先级会大于用户变量,用户变量的值会跟在系统变量后面。在用户变量或系统变量里添加python路径如此看来,方法无外乎:①在用户变量里添加python的相应路径,但位置要比WindowsApps的靠前;②直接在系统变量里添加python的相应路径。方法一.在用户变量中WindowsApps之前添加:命令行窗口执行python成功:方法二.直接在系统变量里添加:同样成功:为什么要添加python的Scripts文件夹路径?经搜索得知,在Windows系统中,当我们通过pip安装包时,这些包通常会安装在Python安装路径下的Scripts文件夹中,如果不添加此文件夹到环境变量中,命令行中使用pip安装的包将无法直接调用。(参考:windowspython为什么环境变量要加script的路径)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-5 09:48 , Processed in 0.442477 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表