在Sublime文本2中尝试安装包控件时发生ImportError

2024-04-23 17:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在Sublime文本2中安装包控件。我在控制台中输入了官方网站的以下安装代码:

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不在那里。我检查了PythonSublime使用的是哪个版本,它是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)]

有什么想法吗?


Tags: installpathimportnonebyifosurllib2
1条回答
网友
1楼 · 发布于 2024-04-23 17:26:23

问题是您正在使用Python3,并且您正在遵循Python2的说明。

这两种语言之间的许多不同之处在于,Python 3将urllib2和一些相关模块重新组织到urllib包中。尤其是urlopen函数、ProxyHandler类等现在位于urllib.request而不是urlopen

但是,您可能会更好地查找Python 3指令,而不是尝试破解Python 2指令。

尤其是因为,如果没有任何Python 3指令,那么程序很有可能无法与python3一起工作,最终会在站点包中留下不可用的垃圾,或者升华插件或其他东西。

更重要的是,如果您使用Python 3和Sublime Text,那么实际上您使用的是Sublime Text 3 beta,它与Sublime Text 2有一些不同。

相关问题 更多 >