我尝试在Sublime Text 2中安装Package Control。我从官方网站输入以下安装代码到控制台:
import urllib2,os,hashlib;
h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0';
pf = 'Package Control.sublime-package';
ipp = sublime.installed_packages_path();
os.makedirs( ipp ) if not os.path.exists(ipp) else None;
urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) );
by = urllib2.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read();
dh = hashlib.sha256(by).hexdigest();
open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None;
print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')`
然而,我得到的唯一结果是:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'urllib2'
我不明白为什么urllib2
不存在。我检查了哪个版本的Python Sublime正在使用它,它是3.3.3。
>>> import sys
>>> print(sys.version)
3.3.3 (default, Dec 19 2013, 14:22:24)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.24)]
有什么想法吗?
答案 0 :(得分:5)
问题在于您使用的是Python 3,并且您正在遵循Python 2的说明。
这两种语言之间的许多差异在于Python 3将urllib2
和一堆相关模块重新组织到urllib
包中。特别是,urlopen
函数,ProxyHandler
类等现在位于urllib.request
而不是urlopen
。
但是,你可能会更好地寻找Python 3指令,而不是试图破解Python 2指令。
特别是因为,如果不是任何Python 3指令,那么该程序不适用于Python 3并且最终会在您的站点包中留下无法使用的垃圾或Sublime插件或其他东西。
更是如此,因为通常如果你使用带有Sublime Text的Python 3,你实际上使用的是Sublime Text 3 beta,它在Sublime Text 2中有一些自己的变化。