当前位置: 首页 > 科技观察

告诉我Python启动器到底是什么?

时间:2023-03-17 21:31:24 科技观察

你可能在什么地方见过这个鬼,当你安装或卸载python时,等等。那你一定和我一样对这鬼东西感兴趣!1、问题出在Python2.x版本脚本和Python3.x版本脚本语法不兼容。然后,必须使用不同的策略来允许[py]脚本根据脚本指定的Python解释器版本使用合适的Python解释器!这句话够呛!用人的话说,我有一个测试脚本,需要Python2.x版本的解释器才能执行。pythontest.py怎么保证执行这个脚本的解释器版本就是我需要的解释器!也就是如何确定你就是我需要的女孩!上面的“python”命令是系统在PATH中找到的。PATH中的Python变量可能是我们手动修改的。抛开这个不谈,一般来说,'python'命令就是调用Python3.x版本的解释器。但这并不完全可靠,因为当系统在PATH中查找'python'命令时,如果Python2.一个返回(系统在Python2.x安装目录下找到python.exe)。考虑安装Python解释器的目录。无论哪个版本都有这些:对于这个缺点,还有另一个约定:?python2将引用某些版本的Python2.x?python3将引用某些版本的Python3.x了解更多关于Python的其他约定'python'命令,请参考Linux中的PEP394在Linux(基于Unix的系统)中,通过软链接绑定指定的Python解释器。例如:这些软链接将不同的python命令指向真实位置中的Python解释器的启动目录。这些用在哪里?由[Shebang]使用,也就是俗称的文件头(这里只说shebang中关于Python文件头的部分)。通过文件头系统去软链接找到对应的'python'命令,而这个命令绑定了特定的Python解释器。#!/usr/bin/python2在Windows中,以上问题在Windows系统中同样存在,所以我们也希望有同样的能力在Windows和Unix中运行[Shebang],并且——没有什么是好用的,不需要发明的新的语法或约定来描述更愉快的事物!经过后续改进,正式出现在PEP397中,并随Python3.3一起发布。叫做[PythonLauncher]2.解决问题Pythonlauncher是Windows的一个实用程序,可以帮助我们定位和执行不同版本的Python解释器。它允许脚本或命令行指示对特定Python版本的偏好,并将定位并执行该版本。mmp,还是这么一口啊!用人类的话来说,区分是要手动指定解释版本来执行py脚本,还是要使用脚本文件指定的解释器,是非常智能的。您手动选择Python解释器,它会调用[PATH]中的Python变量。例如。你在Windows下的cmd中使用Python3.7版本的解释器执行一个文件:$python3.7test.py这个执行是怎么回事?Windows将在PATH中寻找python3.7解释器。查找并执行test.py文件。而这个test.py(你从来没有打开过的文件)文件,其实是需要python2.7版本的解释器来执行的。这是个问题吗?我们使用Pythonlauncher来解决这个问题,它会正确选择最合适的Python版本。如何安装Pythonlauncher一般从3.3版本开始,Pythonlauncher会随着解释器的安装一起可选安装,可以在安装步骤的可选选项中勾选。如本博客的第一张图片所示。会放在系统的PATH中(Python3.6版本开始是这样的,之前的版本略有变化,看Python3.3版本的新特性),如果不手动添加。另一种方法是单独安装。如本博客第一张图所示,可以单独勾选此项单独安装。在多个Python版本中,Python启动器只需安装一次,兼容所有Python版本。因此,如果你在安装3.6版本时选择了Pythonlauncher选项,那么如果你是安装3.7版本,则无法选择此项,因为它已经安装了。Python启动器有两个版本,一个是控制台程序,另一个是'windows'(即GUI)程序。这两个程序分别对应我们Python安装目录下的'python.exe'和'pythonw.exe'这两个可执行文件。控制台程序命名为'py.exe',windows程序命名为'pyw.exe',pyw.exe会定位并执行pythonw.exe。M:\>wherepyC:\Windows\py.exeM:\>wherepyw.exeC:\Windows\pyw.exe这里仅以控制台程序为例。如何使用Python启动器?如果你安装了Python启动器,那么你可以在任何目录中打开cmd测试。默认情况下,Python启动器会打开最新版本的解释器。可以正常使用和退出。而不是您最近安装的某些版本的解释器。如果你的系统环境中有多个版本的Python解释器,那么如果你想启动的话,你可以这样做:当然,Pythonlauncher可以帮助我们解决一些问题。比如现在有一个test.py文件,我们使用Python启动器来启动它。#!python2.7importsysprint(sys.version)#--------以上为文件内容,以下为执行结果-------------M:\>pytest.py2.7.14(v2.7.14:84471935ed,Sep162017,20:19:30)[MSCv.150032bit(Intel)]可以看出Python启动器自动调用指定版本的解释器执行文件根据文件头。我们修改文件头再测试一下。#!python3importsysprint(sys.version)#--------上面是文件内容,下面是执行结果------------M:\>pytest.py3.7.0(v3.7.0:1bf9cc5093,Jun272018,04:06:47)[MSCv.191432bit(Intel)]这样,Pythonlauncher帮助我们找到了我们想要的女孩。让我们看一下没有文件头的那个。importsysprint(sys.version)#--------以上为文件内容,以下为执行结果------------M:\>pytest.py3.7.0(v3.7.0:1bf9cc5093,Jun272018,04:06:47)[MSCv.191432bit(Intel)]结果,Python启动器默认使用最新版本的解释器执行。我们还可以绕过文件头并使用我们指定版本的Python解释器。#!python2importsysprint(sys.version)#--------上面是文件内容,下面是执行结果------------M:\>py-3test.py3.7.0(v3.7.0:1bf9cc5093,Jun272018,04:06:47)[MSCv.191432bit(Intel)]M:\>py-3.5test.py3.5.4(v3.5.4:3f56838,Aug82017,02:07:06)[MSCv.190032bit(Intel)]如上图,我们也可以指定版本来执行脚本。Pythonlauncher是经过Python社区多方考虑后才有的,方便我们在windows下使用Python。如果我们现在不能用,只需要知道它是干什么用的,不求深究。以上是我个人对Pythonlauncher的理解。如有错误,请指正。