从控制台运行python脚本时py与python

时间:2015-10-27 13:53:25

标签: python shebang

我一直在阅读关于python的内容,在使用shebang line时我有一些疑问。我跑的时候:

py file_name.py

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

python file_name.py

使用Python的最后一个版本而不是我指定的版本。我想知道从命令行运行脚本时使用pythonpy之间的区别。我的shebang线是#! python3.4

使用pythonpy会产生不同的影响,还是最终两者都相同?

2 个答案:

答案 0 :(得分:2)

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

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

“py.exe”是Python Launcher。您可能只有一个,即使您有多个Python安装。我在{{1}}。它查看脚本,决定它使用的版本,并将实际执行委托给正确的解释器。

答案 1 :(得分:1)

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

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

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