スクリプトの初期動作追加
そんな大した話じゃないんだが・・・
Pythonのスクリプト起動直後、何らかの初期値、環境等を構築したいと思う。例えば特定のモジュールを「import」したいとか、そんな事をスクリプトを起動後、毎回主導でやってたら面倒になると思う。
スクリプト起動直後の自動的に設定してみる。ちなみに「Dive in Python」に載ってる事を書くだけだけどね。「Dive in Python」って本は面白いね。他に出版されている本、特に著者が日本人の本は基本的すぎて読む気がしなかったんだよ。そんな情報はネットで十分乗ってますよって感じで、買うのをためらわせた。でも「Dive in Python」はお勧め。しかも、ネット上に公開されていているから、誰でも見ること可能。すばらしいよ、著者に感謝。
はじめに、
>>> import sys >>> sys.getdefaultencoding() 'ascii'
次に、Pythonをインストールしたディレクトリに存在する「site-packages」({python_homedir}/lib/site-packages)に下記ファイルを格納。
# sitecustomize.py import sys sys.setdefaultencoding('iso-8859-1')
再度、スクリプト起動。
>>> import sys >>> sys.getdefaultencoding() 'iso-8859-1'
おおお、すげーや、スクリプト起動時に「site-packages」にスクリプトファイルが存在すれば実行するんだね。このファイルに「import」とか記述しておけば、わざわざスクリプト側でインポートせずに済むのかな?あれ?なんか違う気がする。
スクリプト終了後、再度起動して確認。
>>> sys.getdefaultencoding() Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'sys' is not defined >>> dir(sys) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'sys' is not defined
思ったんだが、「site-packages」の「sitecustomize.py」で既に「import sys」を行っているんで、スクリプト起動後、再度「import sys」を行わなくても「sys」パッケージを利用できるんじゃないかと・・・無理だった。結局、「site-packages」ってのは何だ?実行したPython処理系の初期値を設定する事なのかな?例えば文字コードとか、あとは・・・だけど。
ちょっと最初に感じた超便利!ってのとは違うけど面白いね。では