Docker+jenkins小知识,讲解通俗易懂,有必要收藏

上一篇 / 下一篇  2020-08-13 18:05:29 / 个人分类:Python

  最近在使用Python的时候发生了很奇怪的现象:从命令行执行python.exe并不会进入REPL,似乎也没有其他反应,然而稍等片刻,会看到系统弹出WindowsStore页面,并定位到PythonApp的详情页。
  这个现象让我很是迷惑了一下,还以为是Python运行环境出了什么状况,但很快反应过来,从现象看,应该是Windows搞的鬼。
  检查一下路径是否正常,果然:
  原理是系统自己搞了一个Python.exe。如果从在资源管理器打开上述目录的话,会看到这里只有孤零零的几个.exe文件,且图标也不正常,并不是一个真正的、完整的Python运行环境。
  那么问题来了,Windows搞这些没有实际环境的.exe出来,用意何在?
  从网上找到一些信息,原来从Windows102019五月更新以来,微软试图把Python带到Windows,至于具体做法,则是把Python3放到了自家的商店里面。而上面看到的python.exe是一个“假的”Python,它的唯一作用在于当系统没有找到Python的时候,自动跳转到微软商店去让我们下载。
  可能是担心这个新的功能导致一些兼容性方面的结果,微软又在系统设置里面添加了一个比较隐晦的功能。比起在层层叠叠的设置界面里找到它,更简单的方法是直接输入appexec:
  这样会打开设置的“应用程序别名”界面。这里我们会看到系统认为python.exe和python3.exe都只是安装程序的别称,不过我们也可以选择把它们关闭。这样当我们再运行python的时候,就会显示“找不到程序”的标准提示。实际上,Windows是把上述.exe文件偷偷备份到其他地方了。
  很多程序员(包括我)很可能都是按照标准的方式从官方下载安装Python执行文件。如果在安装过程中选择了“添加到系统环境变量”的话,那么标准Python会**到系统PATH变量,而前面所述的WindowsApps目录则是Windows添加到用户PATH变量的。按照Windows系统的规则,PATH环境变量是系统设置先于用户设置,所以如果安装了标准版Python的话,系统应该首先找到的是它,而不是应用商店版的Python。后来我发现,之所以我的机器会出现上述问题,是因为系统设置有一点语法错误,修正以后再次测试,结果就正常了。
  到此,我们已经理解了Windows自带的Python是怎么回事。微软这样做的初衷,应该是希望普通用户能更方便地用上Python,这个想法无可厚非,但放到Windows应用商店这个设计思路是否合理,我还是有一些怀疑的。毕竟微软应用商店一直以来名声并不算太好,内容少、功能欠缺、速度慢,时不时发生一些恼人的小问题(比如不知所云的0x8000xxxx错误)。而“应用程序别名”这个功能到底是解决了问题还是带来更多的困惑,我也持保留意见。
  目前,在Windows上面安装Python已经有很多不同的方式:
  通过官方网站下载安装;
  通过Anaconda集成软件包;
  和VisualStudio一起安装;
  通过chocolatey之类的第三方包管理;
  通过WSL安装Linux版Python;
  通过WindowsStore安装;
  说实话,我认为太多不同的来源渠道会让环境问题变得更复杂,增加出错的可能,并且容易迷惑初学者。对于大多数程序员来说,建议大家还是按照最基本的方式,从官方下载并安装Python。

TAG: Python

 

评分:0

我来说两句

Open Toolbar