[英]Python script doesn't execute by doubleclick on 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
如果我雙擊我的python submodule_foo.py
“ script”,它將不起作用。
我認為問題是由繼承引起的,並調用父init
但是由於我只是雙擊它,所以我不知道如何正確調試它。
我試圖包括:
with open('codes.txt', 'a') as file:
file.write("It Works \n")
在if __name__ == "__main__":
語句之后,它不起作用:$
我的PATH
變量(在Windows 10中)包括c:\\python34
和c:\\python34\\scripts
我也有一個指向c:\\python34
的PYHOME
env變量
而且我已經嘗試過此解決方案: Python腳本在Windows中雙擊停止運行,但對我而言不起作用。
我還嘗試通過python解釋器創建這些類。 並且導入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
沒有此限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.