簡體   English   中英

在Windows上雙擊無法執行Python腳本

[英]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:\\python34c:\\python34\\scripts我也有一個指向c:\\python34PYHOME 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM