PythonモジュールをZope上で使えるように
Zope上で標準では使えないPythonモジュールをallow_module()を使って有効化。
Zope 上(Plone含む)で Python Script を作成し、その中で python 上ではあるはずのモジュールを使ってるんだけど、「権限が不十分です」とかで怒られて使えないことがあります(reモジュールとか)。
その場合は、allow_module()
を使ってZope 上でこのモジュールを使うんだよ!と宣言してやればおkです。
やり方は至って簡単で、例えば、reモジュールを使いたい場合は、$[INSTANCE]/Products/
に適当なディレクトリを作り、その中に以下の内容 __init__.py
を作成して、restartすれば使えるようになります。
◆ $[INSTANCE]/Products/GlobalModules/__init__.py
from Products.PythonScripts.Utility import allow_module
allow_module('re')
ここではProductディレクトリ名をGlobalModulesとしていますがなんでもいいです。複数のモジュールを使う場合も allow_module('使いたいモジュール名') の行をモジュール毎に増やせばいいだけでおま。