【问题标题】:Sublime Text plugin can’t find my default browserSublime Text 插件找不到我的默认浏览器
【发布时间】:2017-05-26 17:54:37
【问题描述】:

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

这让我发疯了。我使用了一个插件,GitLink,它将从您当前的文件中打开一个 GitHub 链接。它依赖 Python 的 webbrowser 工具来打开 url。问题是我的默认浏览器是 Chrome,但它一直打开 Firefox。

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

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

【问题讨论】:

  • 这可能是由于python版本不同(内部Sublime使用3.3.6)。您在什么操作系统上遇到此问题?
  • 可能是一个已知错误:github.com/SublimeTextIssues/Core/issues/1714 - 如果您在 ST 的控制台中键入/粘贴以下内容并按 Enter,输出是什么? BROWSER 环境变量设置了吗? import os; os.environ
  • 感谢您的回复!我在 MacOS 10.12.5 上。不,BROWSER 没有设置。奇怪的是,这在上周正常工作。我想知道我是否在某处破坏了某些权限,或者我的路径设置不正确。

标签: python sublimetext3 sublimetext


【解决方案1】:

您可以尝试几种方法。

1.设置浏览器环境变量:

正如 Keith Hall 所暗示的,这个问题可以通过设置 BROWSER 环境变量来解决。如果您不知道如何查找您的版本 - OSX 在某些时候更改了环境变量的设置方式,因此对于不同版本的 OSX 有不同的方法来执行此操作。但是,我在 Linux 上,我的 BROWSER 环境变量是 not 设置的,ST 总是在我的默认浏览器中打开 url,这包括对 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 - 此版本的文件将覆盖GitLink.py 的版本,它存储在 Gitlink.sublime-package 文件中,Package Control 将安装在 Installed Packages 文件夹中。即使GitLink 包得到更新,.sublime-package 文件中的版本仍然会被覆盖。没问题,您需要做的就是删除包含GitLink.py 文件的文件夹ST_CONFIG/Packages/GitLink/,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 更新(检查控制台是否有“重新加载插件”消息以确定是否需要)。该插件现在应该在 Chrome 中打开您的网址。

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

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

我建议您无论如何都这样做,并将此 StackOverflow 页面的链接添加到您的问题以供参考。

【讨论】:

  • 哇,非常感谢您的详尽回答!然而,在最近更新 Sublime Text 后,问题自行解决了——不确定问题的原因是什么?
猜你喜欢
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
  • 1970-01-01
相关资源
最近更新 更多