sitecustomize.py
Python の実行環境は起動時に、ユーザが環境を設定するためのスクリプトとして lib/site-packages/sitecustomize.py を実行する。
Zope 固有の設定を書くのは何となくイヤなのでパスの通ったディレクトリから sitecustomize.py を探して実行するようにする。
import sys from os import path import filecmp sitecustomize = 'sitecustomize.py' d = path.split(__file__)[0] #print('start in %s' % d) for p in sys.path: #print('dive into %s' % p) try: if filecmp.cmp(p, d) or p == d: continue except OSError: continue filename = path.join(p, sitecustomize) try: fp = open(filename, 'rb') source = fp.read() fp.close() except IOError: continue compiled = compile(source.replace('\r\n', '\n').replace('\r', '\n'), filename, 'exec') #print('exec %s' % filename) exec(compiled)
でも Zope インスタンスディレクトリの lib/python は Zope のスタートアッププロセスが sys.path に追加するので、このコードでは独自のスタートアップルーチンを呼べない罠。