Я пишу приложение PyGTK в Windows, и в функции я пытаюсь открыть веб-страницу с помощью модуля webbrowser. Это должно быть самое простое в мире, но вместо того, чтобы открываться в браузере, он печатает источник HTML-страницы на консоли. Кто-нибудь знает, почему это произойдет?
Код, о котором идет речь:
oauthURL = ("http://api.twitter.com/oauth/authorize?oauth_token=" + requestToken)
webbrowser.open(oauthURL, 2, True)
Я тестировал его на моем ноутбуке Arch Linux только сейчас, и он отлично работает, поэтому это проблема с Windows. Возможно, Python не может найти браузер для использования?
То, что он обычно пытается сделать (в Windows), использует os.startfile(url)
, который запускает приложение по умолчанию для http-адресов. Вы можете проверить, что это делает, введя в командной строке start http://www.example.com
. Если это имеет тот же эффект, вы знаете, в чем проблема, и вы должны перенастроить свой браузер по умолчанию в Windows.
Это поведение может быть переопределено пользователем через переменную среды BROWSER
, поэтому вы можете проверить, не отвечает ли приведенное выше.
Этот фрагмент кода может обрабатывать открытую веб-страницу кросс-платформенным способом:
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".