4

Sublime Text 2 に Package Control をインストールしてみました。公式 Web サイトから次のインストール コードをコンソールに入力しました。

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)]

何か案は?

4

1 に答える 1

5

問題は、Python 3 を使用していて、Python 2 の手順に従っていることです。

2 つの言語の多くの違いの 1 つは、Python 3 が再編成さurllib2れ、一連の関連モジュールがurllibパッケージに組み込まれたことです。特に、urlopen関数、ProxyHandlerクラスなどは のurllib.request代わりになりurlopenました。

ただし、Python 2 の命令をハッキングして機能させるよりも、Python 3 の命令を探すほうがよいでしょう。

特に、 Python 3 命令がない場合、プログラムが Python 3 で動作せず、サイト パッケージや Sublime プラグインなどに使用できないゴミが残る可能性が十分にあります。

通常、Sublime Text で Python 3 を使用している場合、実際には Sublime Text 2 から独自の変更を加えた Sublime Text 3 ベータ版を使用しているため、なおさらです。

于 2014-10-28T19:34:54.630 に答える