如何在Windows中执行Python脚本?

发布于 2021-02-02 23:12:17

我有一个简单的脚本blah.py(使用Python 2):

import sys
print sys.argv[1]

如果我通过以下方式执行脚本:

python c:/..../blah.py argument

它输出参数,但是如果我通过以下方式执行脚本:

blah.py argument

发生错误:

IndexError ...

因此参数不会传递给脚本。

PATH中的python.exe。路径中也包含blah.py的文件夹。
python.exe是执行* .py文件的默认程序。

问题是什么?

关注者
0
被浏览
78
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    执行脚本而不在前面键入“ python”时,你需要了解有关Windows如何调用程序的两件事。首先是找出Windows认为的文件类型:

      C:\> assoc .py
        .py = Python.File
    

    接下来,你需要了解Windows如何使用该扩展名执行操作。它与文件类型“ Python.File”相关联,因此此命令显示了将要执行的操作:

        C:\> ftype Python.File
        Python.File =“ c:\ python26 \ python.exe”“%1”%*
    

    因此,在我的机器上,当我键入“ blah.py foo”时,它将执行此确切命令,与我自己键入完整内容相比,结果没有差异:

        “ c:\ python26 \ python.exe”“ blah.py” foo
    

    如果你键入相同的内容(包括引号),则得到的结果与键入“ blah.py foo”时的结果相同。现在,你可以自己解决其余的问题。

    (或在你的问题中发布更多有用的信息,例如在控制台中看到的实际剪切和粘贴的副本。请注意,进行此类操作的人会投票给他们的问题进行投票,他们会获得声誉得分,还有更多的人可能会为他们提供良好的答案。)

    来自评论:
    即使assoc和ftype显示正确的信息,也有可能参数被剥离。在这种情况下可能有帮助的是直接修复Python的相关注册表项。设置

    HKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command
    

    关键:

    "C:\Python26\python26.exe" "%1" %*
    

    以前很可能%*不见了。同样,设置

     HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看