Sublime Text Tips 1. sys.argvが存在しない
Sublime Text 2のPython処理系にはsys.argvが存在しません。実際にコンソールで「sys.argv」と入力してみると以下のエラーが表示されます。
(ちなみに、次の記事で説明する通り、コンソールではsysモジュールはインポート済みのため、 import sys を実行する必要はありません。)
>>> sys.argv Traceback (most recent call last): File "", line 1, in AttributeError: 'module' object has no attribute 'argv'
このことは、sys.argv を参照するモジュールで問題になります。たとえば、doctestモジュールはsys.argvを参照するため、そのまま使用するとエラーになってしまいます。
とりあえず、doctestを実行する前に、以下の通りにsys.argvに適当に設定しておけば、エラーは回避できます。
import sys sys.argv = ["sublime_text.exe"] # 適当に設定
これはあくまでSublime Text 2のPython処理系で実行したときの話です。doctestに限れば普通のテストはシェルから .py を叩いて実行したいはずなので、その場合は関係ありません。
ただし、普通のPython処理系では import sublime のようにしてSublime Text 2のモジュールを利用することはできないため、テストをSublime Text 2上で実行する必要があります。プラグインのテストをdoctestで書きたい場合は、上記の内容に気を付ける必要があります。