Hatena::ブログ(Diary)

日記

2013-01-28

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 "<string>", line 1, in <module>
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で書きたい場合は、上記の内容に気を付ける必要があります。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/chikatoike/20130128/1359341123
Connection: close