ImportError:在Sublime Text 3中安装Package Manager时没有名为'urllib2'的模块

时间:2013-07-17 20:09:09

标签: python-3.x urllib2 sublimetext3

我正在尝试按照此处http://wbond.net/sublime_packages/package_control/installation的说明安装Sublime Package Control,但收到错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'urllib2'

有一些与问题相关的答案(Python 3.2 Unable to import urllib2 (ImportError: No module named urllib2)),但它没有解释如何解决它,用户刚刚发布了一个解释问题出现原因的链接。但是如何使用该信息来解决问题?

这是一个安装命令:

import urllib2,os; 
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()));
open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); 
print('Please restart Sublime Text to finish installation')

我应该更换urllib2以成功安装?

3 个答案:

答案 0 :(得分:11)

您似乎按照Sublime Text 2上的安装说明进行操作。现在,在Sublime Text 3上,您必须使用git进行安装。该网站的说明如下:

cd Packages/
git clone https://github.com/wbond/sublime_package_control.git "Package Control"
cd "Package Control"
git checkout python3

注意:第一行的Packages/文件夹是指使用首选项&gt;时打开的文件夹。浏览包...菜单。

以下是指向page

的相关部分的链接

答案 1 :(得分:4)

似乎对于Sublime Text 3,不需要Git方法,至少not anymore

以下是ST3的片段:

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()) );
open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

答案 2 :(得分:0)

我为Sublime Text 2解决了同样的错误:

import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; 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(); 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')