python关闭exe程序_Win 10 中使用 Python 碰到的奇怪现象

优质文章,第一时间送达!

83c6065907456c259ddc50c31315ee6f.png

作者:流光飞舞

来源:https://shuhari.dev/blog/2019/11/win10-store-python

最近在使用 Python 的时候发生了很奇怪的现象:从命令行执行 python.exe并不会进入 REPL,似乎也没有其他反应,然而稍等片刻,会看到系统弹出 Windows Store 页面,并定位到 Python App 的详情页。

68cfeabbf832714fc1eaac1e3a4a3290.png

这个现象让我很是迷惑了一下,还以为是 Python 运行环境出了什么状况,但很快反应过来,从现象看,应该是 Windows 搞的鬼。

检查一下路径是否正常,果然:

$ where python
C:甥敳獲yuhaoAppDataLocalMicrosoftWindowsAppspython.exe

原理是系统自己搞了一个 Python.exe。如果从在资源管理器打开上述目录的话,会看到这里只有孤零零的几个 .exe 文件,且图标也不正常,并不是一个真正的、完整的 Python 运行环境。

08c95165c0233bd2b410f1cbff29f29c.png

那么问题来了,Windows 搞这些没有实际环境的 .exe 出来,用意何在?

从网上找到一些信息,原来从 Windows 10 2019 五月更新以来,微软试图把 Python 带到 Windows,至于具体做法,则是把 Python3 放到了自家的商店里面。而上面看到的 python.exe 是一个“假的” Python,它的唯一作用在于当系统没有找到 Python 的时候,自动跳转到微软商店去让我们下载。

以下是微软团队给出的说法:Who put Python in the Windows 10 May 2019 Update?

可能是担心这个新的功能导致一些兼容性方面的结果,微软又在系统设置里面添加了一个比较隐晦的功能。比起在层层叠叠的设置界面里找到它,更简单的方法是直接输入 app exec

8ad84cf2b1d34c6553a6aacb0c9171b4.png

这样会打开设置的“应用程序别名”界面。这里我们会看到系统认为 python.exepython3.exe都只是安装程序的别称,不过我们也可以选择把它们关闭。这样当我们再运行 python 的时候,就会显示“找不到程序”的标准提示。实际上,Windows 是把上述 .exe 文件偷偷备份到其他地方了。

61cf97410ea500306ad8553f5e2b991a.png

很多程序员(包括我)很可能都是按照标准的方式从官方下载安装 Python 执行文件。如果在安装过程中选择了“添加到系统环境变量”的话,那么标准 Python 会注册到系统 PATH 变量,而前面所述的 WindowsApps目录则是 Windows 添加到用户 PATH 变量的。按照 Windows 系统的规则,PATH 环境变量是系统设置先于用户设置,所以如果安装了标准版 Python 的话,系统应该首先找到的是它,而不是应用商店版的 Python。后来我发现,之所以我的机器会出现上述问题,是因为系统设置有一点语法错误,修正以后再次测试,结果就正常了。

到此,我们已经理解了 Windows 自带的 Python 是怎么回事。微软这样做的初衷,应该是希望普通用户能更方便地用上 Python,这个想法无可厚非,但放到 Windows 应用商店这个设计思路是否合理,我还是有一些怀疑的。毕竟微软应用商店一直以来名声并不算太好,内容少、功能欠缺、速度慢,时不时发生一些恼人的小问题(比如 不知所云的 0x8000xxxx 错误)。而“应用程序别名”这个功能到底是解决了问题还是带来更多的困惑,我也持保留意见。

当我在网上查找关于该问题的信息时,也发现有其他用户同样受到该问题的困扰,比如:

  • [Bug] Don't find python library from WindowsApps dir

  • Microsoft Store installed python (3.7 - Windows 10) based virtualenvs cannot access pyd DLLs

目前,在 Windows 上面安装 Python 已经有很多不同的方式:

  • 通过官方网站下载安装;

  • 通过 Anaconda集成软件包;
  • Visual Studio一起安装;
  • 通过 chocolatey之类的第三方包管理;
  • 通过 WSL安装 Linux 版 Python;
  • 通过 Windows Store 安装;

说实话,我认为太多不同的来源渠道会让环境问题变得更复杂,增加出错的可能,并且容易迷惑初学者。对于大多数程序员来说,建议大家还是按照最基本的方式,从官方下载并安装 Python。

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版

回复关键词「m」,立即获取Python精选优质文章合集

回复关键词「」,将数字替换成 0 及以上数字,有惊喜好礼哦~

题图:pexels,CC0 授权。

591faa2b6d11cf28e833e97930b707a9.png
好文章,我在看❤️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mulitpartfile怎么接收不到值_手机有时接收不到微信消息通知,怎么办?超全解决方案...

不知道大家在使用微信的过程中有没有遇到以下情况,在自己看视频或者刷其他网页的时候,没有接收到微信的任何通知和提示的消息。等到你进入微信页面后,突然发现有很多未读信息。这种情况时有发生,很多人都反应说微信接收消息总是会…

生活 list.php,list.php

require_once config.php;// 接收传来的分类id$categoryId$_GET[categoryId];//3// 查询当前分类下的文章// echo $categoryId;// 连接数据库$connectmysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME);// 写sql$sql"select p.id,p.title,p.feature,p.content,p.created,p.…

苹果呼叫转移设置不了_怎么设置别人电话打不进来

您可以尝试输入【**21*888888#】并按下拨打键,开启本机的呼叫转移功能,在开启之后别人拨打您的电话会转移到888888这个空号,实现别的电话无法打入的效果。以下就是相关的步骤介绍:1、只需要在安卓或者苹果iOS 11系统的手机的拨号界…

jdk db版本_企业视频会议系统音视频通话EasyRTC-SFU版本研发中更合适的配置文件格式-TOML配置介绍 - TSINGSEE...

在 EasyRTC-SFU 版本的开发过程中,很多配置需要存储在配置文件中。开发人员经常使用的配置文件有 ini、json、xml、yaml 等格式,在综合分析各种文件格式的优劣后,我们最终确认使用 toml 格式作为配置文件格式。ini 文件格式是最传统的配置文件…

PHP开源管理系统 Gms,GMS 一个成熟的gms系统,拥有基本的权限管理和分类,后台很好 Windows Develop 249万源代码下载- www.pudn.com...

文件名称: GMS下载 收藏√ [5 4 3 2 1 ]开发工具: PHP文件大小: 14012 KB上传时间: 2016-01-03下载次数: 0提 供 者: 马继康详细说明:一个成熟的gms系统,拥有基本的权限管理和分类,后台很好-a good gms system文件列表(点击判断是否您需要的文件&a…

numpy序列预处理dna序列_个人隐私DNA亲子鉴定序列

个人隐私DNA亲子鉴定序列DNA亲子鉴定是基于医学,法律或个人原因解决亲子关系的最先进,最准确的方法。周转时间:凭借先进的DNA技术,亲子鉴定准确,快速且价格合理。现在可以在样品到达实验室后的3至7个工作日内确定亲子关…

usb接口驱动_关于电脑上的USB接口,都在这儿了!

美美的周末时光到来了!今天给大家科普一点电脑的常识。想必大家在日常使用电脑的时候,会经常看到电脑右侧有一些不同的借口,看着像USB借口,但是标志却很奇怪,那到底为什么呢?还有,这些接口是2.0…

kibana 查看索引库中文档个数_百度索引量是什么意思?和百度收录量的区别。...

百度索引量表示所有网名最多会从百度看到的这个网站页面数量,用官方的话来说就是可以被搜索用户搜索到的网站数据库。 百度索引量是什么意思? 百度索引量表示所有网名最多会从百度看到的这个网站页面数量,用官方的话来说就是可以被用户搜索到…

blob 在线解码_「沙发管家」腾讯极光盒子3Pro发布!4+32G内存8K解码

10月22日,腾讯携手创维数字,推出了首款 8K 高清电视盒子——腾讯极光盒子 3Pro 。这款产品的定位是“8K 星耀旗舰家庭娱乐主机”,盒子外观是高级黑加上一些不规则形状设计,磨砂材质,边缘还有一道蓝色的荧光&#xff0c…

360手机浏览器_网信办:UC、QQ、360、搜狗等8款手机浏览器被纳入首批整治范围...

点击蓝字 关注我们UC、QQ、华为、360、搜狗、小米、vivo、OPPO等8款影响力较大的手机浏览器被纳入首批重点整治范围为有效解决网民反映强烈的手机浏览器网络传播乱象,国家网信办即日起对手机浏览器进行专项集中整治,重点聚焦行业突出问题实施“靶向治疗”…

重建索引一般需要多久_游泳小白学游泳,一般需要多久才能学会?猜猜看

由于每个人的身体条件不同,所以每个人从零基础到学会游泳需要的时间也不同。从我一对一的教学经验来看,一般正常体能的人需要5节课就能学会游泳,每节课1个小时。/01/ 零基础一般需要学什么泳姿?在国内来说,一般零基础先…

oracle dg物理和逻辑,Oracle DG介绍(物理无实例)

DG是dataguard,也叫standby,是oracle提供的一种容灾解决方案,只有企业版可用,标准版是不能用的,DG最多可以有一个主节点,9个DG是dataguard,也叫standby,是Oracle提供的一种容灾解决方…

.net 5 正式版_ASP.NET Core 3时代全新开启,DevExpress ASP.NET增强Data Grid

由轻量级JavaScript小部件提供支持的70个高性能DevExpress ASP.NET Core Controls,包含功能完善的报表平台,因此您可以再最短时间内交付响应迅速的业务线应用程序。DevExpress ASP.NET Core控件v19.2新版正式增强Data Grid和TreeList、File Manager等控件…

action script3.0殿堂之路_【日本乐坛传奇】松任谷由实是谁?新音乐女王的登基之路!...

松任谷由实是谁?日本人引以为傲的queen of pops?没错,但她,却不仅只是这样。她是日本音乐界的女王,日本流行音乐界始祖级别的人物,日本新音乐活着的精神象征,日本流行界天花板级别的歌手。她和其…

ltspice 双脉冲_焊烟脉冲布袋式除尘器制作

菲翔环保为您详细解读SAQutg焊烟脉冲布袋式除尘器制作的相关知识与详情,锅炉滤筒除尘器停机时,若停机时间短,不宜将滤袋清灰,应留意除尘器的保温,若停机时间长,应将所有滤袋清灰,并用引风机将滤…

电脑表格制作教程入门_第三节 CorelDRAW制作作品的流程 - CorelDRAW基础入门教程 - 平面设计学院...

CorelDraw简称CDR,是加拿大Corel软件公司产品。它是一个绘图与排版的软件,它广泛地应用于商标设计、标志制作、模型绘制、插图描画、排版及分色输出等诸多领域。作为一个强大的绘图软件,自然广受设计师们喜爱,用作商业设计和美术设…

全市场等权中位数_A股市场周内效应研究

引言>>> 研究目的本文参考东吴证券研报《A股市场的周内效应》内容,对A股市场的日历效应在周内表现进行探索。日历效应,是一个鱼龙混杂的题目。有诙谐逗笑的,如马克吐温老先生的段子:十月,这是股市最危险的月份…

client mac addr不能开机进不去系统_用asp.net core结合fastdfs打造分布式文件存储系统

今天主要是对开发过程,以及对FastDFS这个通用的分布式文件存储服务的单机及集群安装部署过程做个总结。希望对想要自建分布式文件系统的朋友有所帮助。什么是FastDFS这里先简单介绍下分布式文件存储系统。FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要…

linux在根目录下查找文件名称,如何使用Find命令在Linux中查找文件

Linux find命令是Linux系统中最重要和最方便的命令之一。 顾名思义,它可以根据您设置的任何条件和变量在Linux PC上找到文件。 您可以使用find命令按权限,用户,组,文件类型,日期,大小和其他可能的标准查找文…

小米游戏手柄pc插件_在电视上玩电脑游戏

有两个XBOX无线手柄,但steam游戏玩不过来,一直没有买主机。周末想和老婆一起合作玩玩《战斗方块剧场》,这样电脑椅就不够用了,还是窝在沙发里用电视玩着舒服。简单的方法是将显卡的输出接口转接到电视输入口即可。但这样有两个问题…