2011-11-22 81 views
1

我在Windows上寫了一個PyGTK應用程序,並且在一個函數中,我試圖用webbrowser模塊打開一個網頁。它應該是世界上最簡單的東西,但不是在瀏覽器中打開,而是將頁面的HTML源打印到控制檯。有誰知道爲什麼會發生?Python網頁瀏覽器輸出頁面到控制檯在Windows上

有問題的代碼:

oauthURL = ("http://api.twitter.com/oauth/authorize?oauth_token=" + requestToken) 
webbrowser.open(oauthURL, 2, True) 

我剛纔測試了我的Arch Linux的筆記本電腦,並能正常工作,所以這是一個特定於Windows的問題。也許Python找不到可用的瀏覽器?

+0

你能展示你的代碼的關鍵部分? –

+0

更新了問題。 – soren121

+0

從文檔中,它看起來像是指默認的BROWSER環境變量。嘗試設置? –

回答

3

它通常會嘗試執行的操作(在Windows上)使用os.startfile(url),它會啓動http url的默認應用程序。您可以通過在命令提示符處鍵入start http://www.example.com來檢查此功能。如果這具有相同的效果,則知道問題所在,並且應該在Windows中重新配置默認瀏覽器。

此行爲可由用戶通過BROWSER環境變量覆蓋,因此您可能需要檢查上述內容是否無效。

1

這段代碼可以處理一個跨平臺的方式打開一個網頁:

if sys.platform[:3] == 'win': 
    try: 
     os.startfile(oauthURL) 
    except WindowsError as why: 
     # your error handling code 
     print(why) 
else: 
    webbrowser.open(oauthURL, 2, True) 

它是基於IDLE的EditorWindow.py「python_docs」功能。