从控制台运行python脚本时,py与python之间有什么区别
我一直在阅读有关python的文章,在使用shebang行时,我有一些疑问。当我跑步时:从控制台运行python脚本时,py与python之间有什么区别,python,shebang,Python,Shebang,我一直在阅读有关python的文章,在使用shebang行时,我有一些疑问。当我跑步时: py file_name.py 它使用我在shebang行中指出的python版本执行脚本,但是当我执行时 python file_name.py 使用的是Python的最后一个版本,而不是我指定的版本。我想知道从命令行运行脚本时使用python和py之间的区别。我的shebang行是#!python3.4 使用python或py是否有不同的含义,或者最终两者都是相同的?要查看每个命令使用的python
py file_name.py
它使用我在shebang行中指出的python版本执行脚本,但是当我执行时
python file_name.py
使用的是Python的最后一个版本,而不是我指定的版本。我想知道从命令行运行脚本时使用python
和py
之间的区别。我的shebang行是#!python3.4
使用
python
或py
是否有不同的含义,或者最终两者都是相同的?要查看每个命令使用的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安装。我的在
C:\Windows
中。它查看脚本,决定它使用的版本,并将实际执行委托给适当的解释器。py | xargs ls-a在哪里
python scriptname.py
表示“使用python
启动的解释器运行scriptname.py
”。我从未使用过py
,但另一个选项是设置一个显式的shebang(例如#!/usr/bin/env python3
)并使脚本可执行,然后您可以直接运行它。我使用了这段代码来检查运行的版本,这就是我提出这个问题的原因。当我使用py
时,使用了我指定的版本,但在使用python
时没有使用。我想知道两者之间的细微差别,尽管乍一看两者似乎是一样的。@lmiguelvargasf:我已经在编辑中提到了你的评论。