Python脚本不能在Windows上双击执行

对于这样的项目结构:

/tumblr /tumblr /module_foo __init__.py submodule_foo.py /module_bar __init__.py submodule_bar.py __init__.py bot.py 

我正在做这样的事情:

 import sys sys.path.append('C:\\repos\\bot\\tumblr\\tumblr') from tumblr.bot import Bot class SubmoduleFoo(Bot): def __init__(self): super().__init__() # ... # ... if __name__ == "__main__": SubmoduleFoo() 

bot.py只定义了一个空的类,并有一些初始化:

 import sys sys.path.append('C:\\repos\\bot\\tumblr\\tumblr') class Bot: def __init__(self): self.settings = dict() # ... 

如果我从命令行调用这些脚本,它们将工作:

 python C:\path\to\submodule_foo.py 

如果我doubleclick我的python submodule_foo.py “脚本”它不起作用。

我觉得问题是由inheritance造成的,并且调用了父init

但由于我只是双击它,我不知道如何正确debugging它。

我试图包括一个:

 with open('codes.txt', 'a') as file: file.write("It Works \n") 

if __name__ == "__main__":语句if __name__ == "__main__": ,不起作用:$

我的PATHvariables(在Windows 10中)包括c:\python34c:\python34\scripts我也有一个PYHOME envvariables指向c:\python34

我已经尝试了这个解决scheme: 在Windows中双击Python脚本停止运行,但它不适用于我。

我也尝试通过python解释器来创build这些类。 并导入到tumblr.bot.Bot()正在工作

我正在用尽想法。

由于你的文件输出不起作用,所以python解释器可能根本没有启动。 在Windows资源管理器中右键单击该文件,找到“打开方式”的位置,然后按按钮“更改”它看起来不正确。

通过在“开始”中键入cmd来打开DOS命令提示符,并尝试在指定解释器时和不指定解释器时运行脚本。

 c:\home>python.exe myscript.py 

要么

 c:\home>myscript.py 

如果#1工作,#2不工作,则意味着Windows未配置为使用正确的解释器打开* .py文件。

要通过双击启动脚本来查看输出,可以显示如下所示的错误消息:

 #!/usr/bin/env python import sys try: # your code here # your code here # your code here except Exception as e: print("\nTHERE WAS AN ERROR PROCESSING YOUR REQUEST:", e, file=sys.stderr) input("Press Enter to exit...") 

强烈建议使用stderr通道,因为默认情况下,Python会在MS版本的latin-1中打印控制台,任何Unicode字符都会触发编码异常。 stderr没有这个限制。