当 运行 来自控制台的 python 脚本时,py 与 python 之间有什么区别

When running a python script from the console what is the difference between py vs python

我一直在阅读有关 python 的内容,在使用 shebang 行时我有一定的疑问。当我 运行:

py file_name.py

它使用我在 shebang 行中指定的 python 版本执行脚本,但是当我执行时,

python file_name.py

使用的是 Python 的最新版本,而不是我指定的版本。我想知道在从命令行 运行ning 脚本时使用 pythonpy 之间的区别。我的 shebang 台词是 #! python3.4

使用 pythonpy 有不同的含义还是最终两者相同?

要查看每个命令使用的 Python 版本,运行 这两个命令:

python -c "import sys;print(sys.version)"
py -c "import sys;print(sys.version)"

如果两者显示相同的版本,那么在您的系统上它们目前是相同的。 但是,一个或另一个可能会更新。我个人建议不要依赖任何一个,并在脚本中明确调用您想要的 Python 版本。

(此答案假设您使用的是 Windows,但我希望它也主要适用于其他操作系统,取模一些细节)

"python.exe" 是实际的解释器。您的系统上每个 Python 版本都有一个。当您在命令行上 运行 "python" 时执行哪个版本取决于您的 PATH 环境变量和您当前的工作目录。

"py.exe"就是Python Launcher。您可能只有一个,即使您安装了多个 Python。我的在 C:\Windows。它查看脚本,决定它使用的版本,并将实际执行委托给适当的解释器。