安装Sublime Text 3 Package Control bz2时出现错误

8

我的印度网络服务提供商因某种原因决定屏蔽Github。我一直在尝试手动安装Sublime Text 3的Package Control,也尝试使用Sublime Text 3控制台。但在这两种情况下,都似乎缺少一个依赖项:

Package Control: Installing 1 missing dependencies
Package Control: Attempting to use Urllib downloader due to WinINet error: Error downloading package. Host not found (errno 12007) during HTTP write phase of downloading https://codeload.github.com/codexns/sublime-bz2/zip/1.0.0.
Package Control: Error downloading package. URL error [Errno 11004] getaddrinfo failed downloading https://codeload.github.com/codexns/sublime-bz2/zip/1.0.0.
error: Package Control

Unable to download bz2. Please view the console for more details.
Package Control: Skipping automatic upgrade, last run at 2015-01-03 11:32:25, next run at 2015-01-03 12:32:25 or after

我已手动下载了Sublime的bz2文件,现在该怎么办?

编辑:

浏览一些内容告诉我,Package Control 3.0有依赖关系:
Once the package is extracted, a custom-generated python file is added to a special package named  
0_package_control_loader. For Sublime Text 3, this is a .sublime-package file, whereas for 
Sublime Text 2 it is just a folder. The reason for the name (and creating it as a .sublime-
package file in ST3) is to ensure it is the very first non-default package that Sublime Text 
loads.

我已经安装了Package Control,但缺少这个依赖项,是否有手动添加0_package_control_loader.sublime-package版本的方法?


自从两天前,Github和许多其他网站(如vimeo、Dailymotion等)已经解除了封锁。我刚刚尝试了您错误信息中的URL,并成功下载了文件。您应该先尝试一下。如果Github仍然被封锁,请联系您的ISP并告知他们情况。另外,为了澄清,您已经安装了“Package Control”吗? - Harsh Gupta
@HarshGupta 这是编辑器上第一次安装 Package ControlPackage Control(在首选项菜单中可见,将加载包但不会安装它们)已经安装,但我无法使用它,因为它缺少一个依赖项。 - vamsiampolu
为了在Sublime Text 2中安装bz2依赖,我使用"downloader_precedence": { "linux": ["curl"] },将这行添加到/.config/sublime-text-2/Packages/User/Package\ Control.sublime-settings - dmgl
6个回答

3
这对我很有用,参见:@godzig的回答,关于这个相关的Github问题:issues/989。核心内容是:

  • 打开已安装包中的SBT3文件夹中的“0_package_control_loader.sublime-package”存档。将文件名从“02-bz2.py”更改为“01-bz2.py”,错误就消失了;至少在我的情况下是这样的。

希望对你有帮助


3

我遇到了和你一样的问题。以下是我解决问题的方法。

  1. Try to get the file "sublime-bz2-1.0.0.zip". (It seems you have done it);
  2. unzip it to the dictory "...\Application Data\Sublime Text 3\Packages\" and rename the sub-dictory name to "bz2".
  3. open a new txt file and paste below code to it

      {"platforms": ["*"], "url": "https://github.com/codexns/sublime-bz2/issues";, "version": "1.0.0", "description": "Python bz2 module", "sublime_text": "*"}
    
  4. save the file to /bz2 and rename its file name as "dependency-metadata.json" After done these, the hierarchy should be like this:

      /Package
      ├─/bz2
      │  ├─/st2_linux_x32
      │  ├─/st2_linux_x64
      │  ├─/st2_windows_x32
      │  ├─/st2_windows_x64
      │  ├─/st3_linux_x32
      │  ├─/st3_linux_x64
      │  ├─/st3_osx_x64
      │  ├─/st3_windows_x32
      │  ├─/st3_windows_x64
      │  └─dependency-metadata.json
      └─/User
          ├─/c2u_tmp
          └─/Package Control.cache
    
  5. restart sublime text3.

希望对您有帮助!
祝好!

对我来说不起作用,仍然看到“尝试解析bz2包元数据时发生错误”的错误。抱歉。 - Florin

1

我遇到了同样的问题,我尝试通过手动安装来解决它,方法如下:

如果由于某些原因控制台安装指令无法正常工作(例如您的网络上有代理),请执行以下步骤手动安装Package Control:

  1. 单击首选项>浏览程序包...菜单
  2. 向上浏览一个文件夹,然后进入Installed Packages/文件夹
  3. 下载Control.sublime-package包并将其复制到Installed Packages/目录中
  4. 重新启动Sublime Text

0
Machael Lv的回答对我没有帮助。然后我只是以管理员身份启动了sublime text一次,问题就消失了 - 现在我可以像往常一样运行sbt,错误消息不会再出现。

0

除非你的ISP解除Github的封锁(谁会这么做呢?),否则你可以在这里下载0_package_control_loader.sublime-package。我不知道不同版本的Windows是否有不同的软件包,但这个是来自于Win8上的ST3。希望能帮到你!


0_package_control_loader.sublime-package 在每台机器上都是动态生成的,以包含每个已安装依赖项的加载程序。共享它是行不通的。 - wbond
@wbond 谢谢Will,我不知道那个。分享文件只是一个临时措施,直到OP再次访问github,由于他从未回复,我不知道它是否有效。 - MattDMo
没关系,我只是想提一下,这样未来的人就不会尝试了。 - wbond

-2
import urllib.request,os,hashlib;   
h = '2deb499853c4371624f5a07e27c334aa' + 'bf8c4e67d14fb0525ba4f89698a6d7e1';  
pf = 'Package Control.sublime-package';  
ipp = sublime.installed_packages_path();  
urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) );  
by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read();  
dh = hashlib.sha256(by).hexdigest();  
print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) 
if dh != h 
else open(os.path.join( ipp, pf), 'wb' ).write(by) 

我把你给我的代码粘贴到Sublime Text 3控制台中,仍然报错。你能否使用“{}”格式选项对代码进行格式化并详细说明一下? - vamsiampolu
去了网站并逐行复制,但这并没有起作用。 - vamsiampolu
2
这是安装脚本的旧版本,由于Package Control的新版本发布了不同的哈希值,它将不再起作用。甚至在安装页面上有一个明亮的橙色警告消息,提示不要复制和粘贴安装代码。 - wbond

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