Sublime Text插件无法找到我的默认浏览器

时间:2017-05-26 17:54:38

标签: python sublimetext3 sublimetext

TL; DR:Sublime Text从webbrowser._browsers获得的响应与我的终端不同。

这让我疯了。我使用了一个插件GitLink,它会打开你当前文件的GitHub链接。它依赖于Python的webbrowser工具来打开网址。问题是我的默认浏览器是Chrome,但它会不断打开Firefox。

在我的终端中,如果我启动到pythonpython3webbrowser.open_new_tab('https://stackoverflow.com')将在Chrome中正确启动。 webbrowser._browsers会正确地将'chrome'列为我的浏览器之一。

但是,在Sublime Text控制台中,webbrowser._browsers缺少Chrome。它列出了我真正想要的所有其他浏览器保存。是什么赋予了? Sublime Text如何获得与我在终端中运行python时不同的列表?如何让它匹配?

1 个答案:

答案 0 :(得分:1)

你可以尝试几件事。

<强> 1。设置BROWSER环境变量:

正如Keith Hall所暗示的,可以通过设置BROWSER环境变量来解决此问题。如果您不知道如何查找您的版本 - OSX改变了环境变量在某些时候的设置方式,因此对于不同版本的OSX有不同的方法。但是,我在Linux上,我的BROWSER环境变量设置,ST总是在我的默认浏览器中打开网址,这包括对webbrowser.open_new_tab()的调用(我假设你看到的是GitLink用于打开网址的内容,所以这可能无法解决问题。

<强> 2。修改GitLink(您安装的版本):

首先测试这是否有效 - 在Linux上运行正常。

将以下2行复制并粘贴到ST控制台:

import webbrowser
webbrowser.get("chrome").open_new_tab("http://www.google.com")

如果无法通过Google.com打开Chrome,请尝试:

# google-chrome: Chrome variant.
webbrowser.get("google-chrome").open_new_tab("http://www.google.com")
# macosx: uses the OSX default browser.
webbrowser.get("macosx").open_new_tab("http://www.google.com")
# links: generic; doubtful but worth trying at this stage.
webbrowser.get("links").open_new_tab("http://www.google.com")

完整的list of possible values可能会有所帮助。

另一种可能性是使用完整路径,请参阅此StackOverflow answer或尝试:

# Replace path with your path to Chrome if necessary.
webbrowser.register('chrome_path', None, webbrowser.BackgroundBrowser("/Applications/Google Chrome.app"))
webbrowser.get('chrome_path').open_new_tab(url)

一旦有效:

  • 安装PackageResourceViewer插件;安装完毕后......
  • 打开命令选项板,然后选择:PackageResourceViewer: Open Resource
  • 在包列表中选择:GitLink
  • 在文件列表中选择:GitLink.py
  • 文件GitLink.py将会打开...

如果您保存此文件(如果您在不保存的情况下关闭它,则根本不会发生任何事情),那么GitLink.py的副本将保存在您的系统的此位置:ST_CONFIG/Packages/GitLink/GitLink.py - 此版本的file将覆盖GitLink.py的版本,该版本存储在Gitlink.sublime-package文件中,Package Control将安装在Installed Packages文件夹中。即使GitLink包更新,.sublime-package文件中的版本仍会被覆盖。没问题,你需要做的就是删除包含ST_CONFIG/Packages/GitLink/文件的文件夹GitLink.py,ST将开始使用.sublime-package文件中的版本试。

修改很简单:

向下滚动到GitLink.py的底部,您将在其中看到以下行:

if(args['web']):
    webbrowser.open_new_tab(url)

只需将webbrowser.open_new_tab(url)行更改为以下内容(如果需要,使用在控制台中运行的值替换"chrome"):

if(args['web']):
    webbrowser.get("chrome").open_new_tab(url)

保存文件,插件应该由ST立即更新(检查控制台的&#34;重新加载插件&#34;消息以确定是否需要)。该插件现在应该在Chrome中打开您的网址。

第3。在GitLink的GitHub页面上打开一个问题:

问题页面为here。说明您的问题并请求添加设置,以便用户可以指定Python的webbrowser模块应使用哪个浏览器。

我建议你这样做,并在你的问题上添加一个StackOverflow页面的链接以供参考。