关于python:Win-10-中使用-Python-碰到的奇怪现象

69次阅读

共计 1812 个字符,预计需要花费 5 分钟才能阅读完成。

本文作者:流光飞舞,起源:https://shuhari.dev/blog/2019…

最近在应用 Python 的时候产生了很奇怪的景象:从命令行执行 python.exe 并不会进入 REPL,仿佛也没有其余反馈,然而稍等片刻,会看到零碎弹出 Windows Store 页面,并定位到 Python App 的详情页。

这个景象让我很是蛊惑了一下,还认为是 Python 运行环境出了什么情况,但很快反馈过去,从景象看,应该是 Windows 搞的鬼。
检查一下门路是否失常,果然:

\$ where python
C:\\Users\\yuhao\\AppData\\Local\\Microsoft\\WindowsApps\\python.exe

原理是零碎本人搞了一个 Python.exe。如果从在资源管理器关上上述目录的话,会看到这里只有孤零零的几个 .exe 文件,且图标也不失常,并不是一个真正的、残缺的 Python 运行环境。

那么问题来了,Windows 搞这些没有理论环境的 .exe 进去,用意何在?

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

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

可能是放心这个新的性能导致一些兼容性方面的后果,微软又在零碎设置外面增加了一个比拟费解的性能。比起在层层叠叠的设置界面里找到它,更简略的办法是间接输出 app exec:

这样会关上设置的“应用程序别名”界面。这里咱们会看到零碎认为 python.exe 和 python3.exe 都只是安装程序的别称,不过咱们也能够抉择把它们敞开。这样当咱们再运行 python 的时候,就会显示“找不到程序”的规范提醒。实际上,Windows 是把上述 .exe 文件偷偷备份到其余中央了。

很多程序员(包含我)很可能都是依照规范的形式从官网下载安装 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。

逆锋起笔 是一个专一于程序员圈子的技术平台,你能够播种 最新技术动静 最新内测资格 BAT 等大厂的教训 精品学习材料 职业路线 副业思维 ,微信搜寻 逆锋起笔 关注!

正文完
 0