日記

日々のことと、Python/Django/PHP/Laravel/nodejs などソフトウェア開発のことを書き綴ります

RuntimeError: instance.__dict__ not accessible in restricted mode

表題のエラー「RuntimeError: instance.__dict__ not accessible in restricted mode」という感じで Tracがエラーを出す時は、TracのLocation配下に以下の設定が必要だと、ぐぐると出てくる。

    PythonInterpreter main_interpreter

しかし、この設定は Trac複数同じApache上に立てる時には不十分で、Location毎に main_interpreter の部分は重複が無いように設定しないといけません。
ここが同じだとPythonインタープリターが、他の関係ないTracと共有されてしまって動作がおかしくなります。

ざっくりサンプルを載せておくと

<Location /trac/proj1>
  SetHandler mod_python
  PythonInterpreter proj1
  ....
</Loction>

<Location /trac/proj2>
  SetHandler mod_python
  PythonInterpreter proj2
  ....
</Loction>

のようになります。
Python Subversionバインディングが悪いらしいので、wsgiTracを動かしても同じような状態になりそうな気がする。

  • 追記

これ直らんわ