webbrowser.get ("firefox") на Mac с Firefox "не может найти работающий браузер" - PullRequest
3 голосов
/ 12 октября 2009

Я думаю, что мне нужно здесь, чтобы знать, какую магическую программу командной строки или сценарий OSA запустить для запуска URL-адреса в существующем браузере Firefox, если он запущен, или также для запуска Firefox, если это не так , На Mac.

Я тестирую программу Python (Crunchy Python), которая настраивает веб-сервер, а затем использует Firefox для внешнего интерфейса. Запускает веб-приложение со следующим:

try:
    client = webbrowser.get("firefox")
    client.open(url)
    return
except:
    try:
        client = webbrowser.get()
        client.open(url)
        return
    except:
        print('Please open %s in Firefox.' % url)

У меня Safari на моем Mac по умолчанию, но у меня также установлен и работает Firefox. Приведенный выше код запустил новый URL (на локальном хосте) в Safari. Хрустящие не очень хорошо работают в Safari. Я хочу видеть это в Firefox, так как у меня есть Firefox. Под Python 2.5, 2.6 и 2.7 (из контроля версий) я получаю это:

>>> import webbrowser
>>> webbrowser.get("firefox")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/webbrowser.py", line 46, in get
    raise Error("could not locate runnable browser")
webbrowser.Error: could not locate runnable browser

Firefox есть. Я попытался использовать webbrowser.get ("/ Applications / Firefox.app / Contents / MacOS / firefox% s"), который запускает новый экземпляр Firefox, а затем жалуется, что другой экземпляр Firefox уже запущен.

Мне бы очень хотелось, чтобы веб-браузер открывал URL в существующей вкладке / окне Firefox, если он уже запущен или в новом Firefox еще не запущен.

Я посмотрел на webbrowser.py и похоже, что MacOSX не поддерживает Firefox. Это нормально, я могу добавить это. Но я не знаю, как открыть URL в Firefox так, как я хочу.

Идеи? А пока я могу заставить Crunchy дать мне URL-адрес, который я могу вручную вставить в Firefox.

Ответы [ 2 ]

2 голосов
/ 12 октября 2009

Вы должны использовать Launch Services, чтобы открыть URL. Вы можете сделать это с помощью модуля LaunchServices, утилиты Apple open или моей утилиты launch ( здесь ):

open, вероятно, самый простой:

% open -b org.mozilla.firefox http://www.stackoverflow.com/

(или, конечно, эквивалент в Python с subprocess или аналогичным) должен делать то, что вы хотите.

2 голосов
/ 12 октября 2009

Apple использует службы запуска для поиска приложений. Приложение может использоваться командой open - Страница руководства разработчика Apple для открытия

Нужная вам команда python:

client = webbrowser.get("open -a /Applications/Firefox.app %s")

После комментария Николаса Райли

Если Firefox находится в списке приложений, вы можете обойтись без open -a Firefox.app% s

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...