В вашем экземпляре moinmoin перейдите на
data/macro
Убедитесь, что есть __init__.py по крайней мере со следующим содержанием:
from MoinMoin.util import pysupport
modules = pysupport.getPackageModules(__file__)
Затем создайте свой макрос там:
touch PyShell.py
Используйте это как шаблон:
import StringIO
import sys
def macro_PyShell(macro, code):
code_out = StringIO.StringIO()
sys.stdout = code_out
exec code.strip("'").strip('"')
sys.stdout = sys.__stdout__
return macro.request.formatter.text(code_out.getvalue())
На ваших вики-страницах вы теперь сможете вызывать этот макрос с помощью:
<<PyShell("for i in [1,2,3]:\n print i")>>