代码之家  ›  专栏  ›  技术社区  ›  Andrew Dalke

使用firefox的mac上的webbrowser.get(“firefox”)“找不到可运行的浏览器”

  •  3
  • Andrew Dalke  · 技术社区  · 15 年前

    我想我需要知道运行哪个magic命令行或osa脚本程序来在现有的firefox浏览器中启动一个url,如果正在运行,或者如果没有,也可以在Mac上启动firefox。

    我正在测试一个python程序(crunchy python),它设置了一个Web服务器,然后使用firefox作为前端。它以以下方式启动Web应用程序:

    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)
    

    我在Mac上默认安装了Safari,但我也安装了Firefox并在运行。上面的代码在Safari中启动了新的URL(在localhost上)。松脆的食物在狩猎中不好用。我想在火狐中看到它,因为我有火狐。在Python2.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
    

    火狐在那里。我尝试使用webbrowser.get(“/applications/firefox.app/contents/macos/firefox%s”),它启动一个新的firefox实例,然后抱怨另一个firefox实例已经在运行。

    我真的希望WebBrowser在现有的Firefox选项卡/窗口中打开URL,如果它已经在运行,或者新的Firefox还没有运行。

    我看过webbrowser.py,它看起来没有对macosx的“firefox”支持。没关系,我可以补充一下。但是我不知道如何以我想要的方式在Firefox中打开URL。

    思想?现在,我可以强制crunchy给我URL,我可以手动粘贴到Firefox中。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Nicholas Riley    15 年前

    您应该使用启动服务打开URL。你可以用 LaunchServices 模块,或苹果的 open 实用工具,或与我的 launch 实用工具( here ):

    打开 可能是最简单的:

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

    (或者,当然,在python中与 subprocess 或者类似的)应该做你想做的。

        2
  •  1
  •   mmmmmm    15 年前

    苹果使用发布服务来查找应用程序。应用程序可由open命令使用- Apple developer man page for open

    您需要的python命令是

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

    跟随尼古拉斯·莱利的评论

    如果firefox在应用程序列表中,那么您可以通过打开来逃脱-一个firefox.app%s