我一直在阅读关于python的内容,在使用shebang line时我有一些疑问。我跑的时候:
py file_name.py
它使用我在shebang行中指出的python版本执行脚本,但是当我执行时,
python file_name.py
使用Python的最后一个版本而不是我指定的版本。我想知道从命令行运行脚本时使用python
和py
之间的区别。我的shebang线是#! python3.4
使用python
或py
会产生不同的影响,还是最终两者都相同?
答案 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版本。