Sublime Text 3 包管理器安装

6

由于代理设置,我在安装sublime text 3的package control时遇到了问题,但我需要安装插件。当我在控制台中输入getproxy时,它返回给我{},当我尝试使用以下命令在控制台中设置代理时:

urllib.set_proxy('http://user:password@server:port', 'http')

我用实际值替换了用户、密码、服务器和端口,但它返回给我:

Traceback (most recent call last):
File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 'set_proxy'

我该怎么做才能使其正常工作?我需要安装一个插件。

4个回答

14

在代理服务器后设置Package Control

您需要在Package Control设置中设置代理服务器。

将下面的代码复制并粘贴到名为Package Control.sublime-settings的文件中,该文件必须保存在您的User配置文件夹中。 这与您的USERPreferences.sublime-settings文件保存的文件夹相同。 数据目录介绍了它在您的操作系统上的位置。 例如:

  • Windows:%APPDATA%\Sublime Text 3\Packages\User\Package Control.sublime-settings
  • OS X:~/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings
  • Linux:~/.config/sublime-text-3/Packages/User/Package Control.sublime-settings

显然,您必须在下面的相关字段中添加域和端口以及用户名和密码。 代理应该采用以下形式:proxyserver:port。 例如:

{
    "http_proxy": "server.com:80",
    "https_proxy": "server.com:8080",
    "proxy_username": "mynameis",
    "proxy_password": "mypassis",
}

参见: Package Control设置

{
    // An HTTP proxy server to use for requests. Not normally used on Windows
    // since the system proxy configuration is utilized via WinINet. However,
    // if WinINet is not working properly, this will be used by the Urllib
    // downloader, which acts as a fallback.
    "http_proxy": "",

    // An HTTPS proxy server to use for requests - this will inherit from
    // http_proxy if it is set to "" or null and http_proxy has a value. You
    // can set this to false to prevent inheriting from http_proxy. Not
    // normally used on Windows since the system proxy configuration is
    // utilized via WinINet. However, if WinINet is not working properly, this
    // will be used by the Urllib downloader, which acts as a fallback.
    "https_proxy": "",

    // Username and password for both http_proxy and https_proxy. May be used
    // with WinINet to set credentials for system-level proxy config.
    "proxy_username": "",
    "proxy_password": "",
}

有没有想法是否可以配置代理URL而不是“自动配置脚本”? - Mugen
1
@Mugen 我不确定,我认为代理URL只是在Web浏览器中使用,但我可能错了。如果在这里找不到答案,请尝试在Sublime Text网站的技术支持论坛上发布。 - mattst

6
您可以在Sublime 3控制台中运行以下命令(使用CTRL+`View -> Show Console打开控制台)。
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler({'http': 'http://USER:PASSWORD@HOST:PORT', 'https': 'https://USER:PASSWORD@HOST:PORT'})) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

在上面的代码中,您需要根据代理详细信息替换httphttps键的值(USER:PASSWORD@HOST:PORT)。然后按Enter键,它将使用提供的代理安装Package Control

1
那个sublime.wbond.net域名是什么?看起来可疑。 - Blindfold

4

我曾经遇到同样的问题,无法下载 Sublime Text 3 的软件包。在 Sublime 控制台中(Mac 快捷键 Ctrl + `),我按照以下代码片段设置了代理服务器,并且成功地解决了该问题。

import os
proxy_server = 'http://username:password@proxy_server_name:port'
os.environ['http_proxy'] = proxy_server
os.environ['HTTP_PROXY'] = proxy_server
os.environ['https_proxy'] = proxy_server
os.environ['HTTPS_PROXY'] = proxy_server
os.environ['all_proxy'] = proxy_server
os.environ['ALL_PROXY'] = proxy_server
os.environ['ftp_proxy'] = proxy_server
os.environ['FTP_PROXY'] = proxy_server

0

针对 socks5 代理设置:

菜单栏: 首选项 > 包设置 > 包控制 > 设置

注意: curl 下载器后端支持 socks5

{
    
    "downloader_precedence": {
        "linux": ["curl"]
    },
    "http_proxy": "socks5://127.0.0.1:1080",
    "proxy_password": "",
    "proxy_username": "",
...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接