This HTML page contains the basic install docs that can be found on http://moinmaster.wikiwikiweb.de/MoinMoin/InstallDocs. It contains all necessary information to get your wiki up and running, even without being online. If you have a permanent internet connection, you might want to browse the docs on the HelpOnInstalling page, which might contain more up-to-date information.
After following the procedures on this page, you should have a working wiki and can browse the rest of the online docs there.
How to install your own MoinMoin Wiki
This page describes the installation procedure of MoinMoin. In the next section, there is a list of real-world Installation Scenarios that help you to understand how to apply the instructions in different environments. If you already have a wiki running and want to upgrade, see HelpOnUpdating.
A MoinMoin installation is done by some elementary steps:
Basic Installation explains the "setup.py" step of the installation in more detail. This is uses to get the MoinMoin code and wiki template installed onto your system. This applies equally to all scenarios, and you should read it before trying a live installation.
Wiki Instance Creation explains how you make a new wiki instance (data and configuration), this is also common to all scenarios.
Getting the web server to serve static stuff under the /wiki URL (url_prefix) - used for theme CSS and images, etc. - this is slightly different for the various web servers that can be used - see below.
- Getting the web server to execute the moin code when you access wiki pages. This is done either by CGI, FastCGI, mod_python or Twisted or the built-in stand alone server - this is slightly different for the various web servers that can be used - see below.
After a successful installation, you might want to read more about configuration and other options that you, as the wiki administrator, can set up. HelpOnAdministration contains links to pages that cover these topics. Especially, the HelpOnConfiguration and HelpOnUpdating pages provide additional information regarding wiki setup and maintenance.
Trouble-shooting helps with fixing any general problems you might encounter, which apply to any installation platform.
Installation steps specific for some web servers and operating systems
The following links will show you concrete examples of installation sessions, showing the commands used and explaining what they do. You must first read the general information on installing above before doing the installation steps described on the pages linked from below:
Linux:
Long-Running-Process Setup:
Mac OS X:
Windows:
--> -->
ImportError
No module named sctable-1.5.2-5
If you want to report a bug, please save this page and attach it to your bug report.
Traceback
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
/usr/local/lib/python2.5/site-packages/MoinMoin/request.py in run (self=<MoinMoin.request.RequestCGI object at 0x7f0b31924490>)
- 1205 self.page.send_page(self, msg=msg)
- 1206 else:
- 1207 handler(self.page.page_name, self)
- 1208
- 1209 # generate page footer (actions that do not want this footer use
- handler = <function do_show at 0x1cdc500>
- self = <MoinMoin.request.RequestCGI object at 0x7f0b31924490>
- self.page = <MoinMoin.Page.Page instance at 0x1cc52d8>
- self.page.page_name = u'MoinMoin/InstallDocs'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiaction.py in do_show (pagename=u'MoinMoin/InstallDocs', request=<MoinMoin.request.RequestCGI object at 0x7f0b31924490>)
- 466 else:
- 467 request.cacheable = 1
- 468 Page(request, pagename).send_page(request, count_hit=1)
- 469
- 470
- global Page = <class MoinMoin.Page.Page at 0x1c692f0>
- request = <MoinMoin.request.RequestCGI object at 0x7f0b31924490>
- pagename = u'MoinMoin/InstallDocs'
- ).send_page undefined
- count_hit undefined
/usr/local/lib/python2.5/site-packages/MoinMoin/Page.py in send_page (self=<MoinMoin.Page.Page instance at 0x1dc0b00>, request=<MoinMoin.request.RequestCGI object at 0x7f0b31924490>, msg='', **keywords={'count_hit': 1})
- 1254 format_args=pi_formatargs,
- 1255 do_cache=do_cache,
- 1256 start_line=pi_lines)
- 1257
- 1258 # check for pending footnotes
- start_line undefined
- pi_lines = 8
/usr/local/lib/python2.5/site-packages/MoinMoin/Page.py in send_page_content (self=<MoinMoin.Page.Page instance at 0x1dc0b00>, request=<MoinMoin.request.RequestCGI object at 0x7f0b31924490>, Parser=<class MoinMoin.parser.wiki.Parser at 0x1ec6050>, body=u'\nThis HTML page contains the basic install docs ...alling/TroubleShooting, "Trouble-shooting", 1)]]\n', format_args=u'', do_cache=1, **kw={'start_line': 8})
- 1341
- 1342 if not (do_cache and self.canUseCache(Parser)):
- 1343 self.format(parser)
- 1344 else:
- 1345 try:
- self = <MoinMoin.Page.Page instance at 0x1dc0b00>
- self.format = <bound method Page.format of <MoinMoin.Page.Page instance at 0x1dc0b00>>
- parser = <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>
/usr/local/lib/python2.5/site-packages/MoinMoin/Page.py in format (self=<MoinMoin.Page.Page instance at 0x1dc0b00>, parser=<MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>)
- 1362 def format(self, parser):
- 1363 """ Format and write page content without caching """
- 1364 parser.format(self.formatter)
- 1365
- 1366 def execute(self, request, parser, code):
- parser = <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>
- parser.format = <bound method Parser.format of <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>>
- self = <MoinMoin.Page.Page instance at 0x1dc0b00>
- self.formatter = <MoinMoin.formatter.text_html.Formatter instance at 0x1dc0488>
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in format (self=<MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>, formatter=<MoinMoin.formatter.text_html.Formatter instance at 0x1dc0488>)
- 1098
- 1099 # Scan line, format and write
- 1100 formatted_line = self.scan(scan_re, line)
- 1101 self.request.write(formatted_line)
- 1102
- formatted_line = u'<p class="line867"><span class="anchor" id="basic-install"></span> '
- self = <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>
- self.scan = <bound method Parser.scan of <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>>
- scan_re = <_sre.SRE_Pattern object at 0x2082320>
- line = u'[[Include(HelpOnInstalling/BasicInstallation)]] '
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in scan (self=<MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>, scan_re=<_sre.SRE_Pattern object at 0x2082320>, line=u'[[Include(HelpOnInstalling/BasicInstallation)]] ')
- 874 self.in_table or self.in_list):
- 875 result.append(self.formatter.paragraph(1, css_class="line867"))
- 876 result.append(self.replace(match))
- 877 lastpos = match.end()
- 878
- result = []
- result.append = <built-in method append of list object at 0x20527a0>
- self = <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>
- self.replace = <bound method Parser.replace of <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>>
- match = <_sre.SRE_Match object at 0x2019cc0>
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in replace (self=<MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>, match=<_sre.SRE_Match object at 0x2019cc0>)
- 903 # Get replace method and replece hit
- 904 replace = getattr(self, '_' + type + '_repl')
- 905 result.append(replace(hit))
- 906 return ''.join(result)
- 907 else:
- result = []
- result.append = <built-in method append of list object at 0x2052908>
- replace = <bound method Parser._macro_repl of <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>>
- hit = u'[[Include(HelpOnInstalling/BasicInstallation)]]'
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in _macro_repl (self=<MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>, word=u'[[Include(HelpOnInstalling/BasicInstallation)]]')
- 848 if self.macro is None:
- 849 self.macro = wikimacro.Macro(self)
- 850 return self.formatter.macro(self.macro, macro_name, args)
- 851
- 852 def scan(self, scan_re, line):
- self = <MoinMoin.parser.wiki.Parser instance at 0x1d93ab8>
- self.formatter = <MoinMoin.formatter.text_html.Formatter instance at 0x1dc0488>
- self.formatter.macro = <bound method Formatter.macro of <MoinMoin.formatter.text_html.Formatter instance at 0x1dc0488>>
- self.macro = <MoinMoin.wikimacro.Macro instance at 0x1ba4c20>
- macro_name = u'Include'
- args = u'HelpOnInstalling/BasicInstallation'
/usr/local/lib/python2.5/site-packages/MoinMoin/formatter/base.py in macro (self=<MoinMoin.formatter.text_html.Formatter instance at 0x1dc0488>, macro_obj=<MoinMoin.wikimacro.Macro instance at 0x1ba4c20>, name=u'Include', args=u'HelpOnInstalling/BasicInstallation')
- 288 def macro(self, macro_obj, name, args):
- 289 # call the macro
- 290 return macro_obj.execute(name, args)
- 291
- 292 def _get_bang_args(self, line):
- macro_obj = <MoinMoin.wikimacro.Macro instance at 0x1ba4c20>
- macro_obj.execute = <bound method Macro.execute of <MoinMoin.wikimacro.Macro instance at 0x1ba4c20>>
- name = u'Include'
- args = u'HelpOnInstalling/BasicInstallation'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikimacro.py in execute (self=<MoinMoin.wikimacro.Macro instance at 0x1ba4c20>, macro_name=u'Include', args=u'HelpOnInstalling/BasicInstallation')
- 118 else:
- 119 raise ImportError("Cannot load macro %s" % macro_name)
- 120 return execute(self, args)
- 121
- 122 def _m_lang(self, text):
- execute = <function execute at 0x1eba410>
- self = <MoinMoin.wikimacro.Macro instance at 0x1ba4c20>
- args = u'HelpOnInstalling/BasicInstallation'
/usr/local/lib/python2.5/site-packages/MoinMoin/macro/Include.py in execute (macro=<MoinMoin.wikimacro.Macro instance at 0x1ba4c20>, text=u'HelpOnInstalling/BasicInstallation', args_re=<_sre.SRE_Pattern object at 0x1f131b0>, title_re=<_sre.SRE_Pattern object at 0x1eb24e0>, called_by_toc=0)
- 220 cid = request.makeUniqueID("Include_%s" % wikiutil.quoteWikinameURL(inc_page.page_name))
- 221 inc_page.send_page(request, content_only=1, content_id=cid,
- 222 omit_footnotes=True)
- 223 result.append(strfile.getvalue())
- 224 finally:
- omit_footnotes undefined
- builtin True = True
/usr/local/lib/python2.5/site-packages/MoinMoin/Page.py in send_page (self=<MoinMoin.Page.Page instance at 0x1ba9758>, request=<MoinMoin.request.RequestCGI object at 0x7f0b31924490>, msg='', **keywords={'content_id': u'Include_HelpOnInstalling/BasicInstallation', 'content_only': 1, 'omit_footnotes': True})
- 1254 format_args=pi_formatargs,
- 1255 do_cache=do_cache,
- 1256 start_line=pi_lines)
- 1257
- 1258 # check for pending footnotes
- start_line undefined
- pi_lines = 7
/usr/local/lib/python2.5/site-packages/MoinMoin/Page.py in send_page_content (self=<MoinMoin.Page.Page instance at 0x1ba9758>, request=<MoinMoin.request.RequestCGI object at 0x7f0b31924490>, Parser=<class MoinMoin.parser.wiki.Parser at 0x1ec6050>, body=u"\n## Description\n'''How to do a basic installatio..., and easily upgrade to new Moin``Moin versions.\n", format_args=u'', do_cache=1, **kw={'start_line': 7})
- 1341
- 1342 if not (do_cache and self.canUseCache(Parser)):
- 1343 self.format(parser)
- 1344 else:
- 1345 try:
- self = <MoinMoin.Page.Page instance at 0x1ba9758>
- self.format = <bound method Page.format of <MoinMoin.Page.Page instance at 0x1ba9758>>
- parser = <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>
/usr/local/lib/python2.5/site-packages/MoinMoin/Page.py in format (self=<MoinMoin.Page.Page instance at 0x1ba9758>, parser=<MoinMoin.parser.wiki.Parser instance at 0x1ba9950>)
- 1362 def format(self, parser):
- 1363 """ Format and write page content without caching """
- 1364 parser.format(self.formatter)
- 1365
- 1366 def execute(self, request, parser, code):
- parser = <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>
- parser.format = <bound method Parser.format of <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>>
- self = <MoinMoin.Page.Page instance at 0x1ba9758>
- self.formatter = <MoinMoin.formatter.text_html.Formatter instance at 0x1ba9998>
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in format (self=<MoinMoin.parser.wiki.Parser instance at 0x1ba9950>, formatter=<MoinMoin.formatter.text_html.Formatter instance at 0x1ba9998>)
- 1098
- 1099 # Scan line, format and write
- 1100 formatted_line = self.scan(scan_re, line)
- 1101 self.request.write(formatted_line)
- 1102
- formatted_line = u'<p class="line862">If you don\'t have shell acces...xecutable, and invoke it using your web browser. '
- self = <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>
- self.scan = <bound method Parser.scan of <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>>
- scan_re = <_sre.SRE_Pattern object at 0x2082320>
- line = u'inline:pythontest.cgi '
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in scan (self=<MoinMoin.parser.wiki.Parser instance at 0x1ba9950>, scan_re=<_sre.SRE_Pattern object at 0x2082320>, line=u'inline:pythontest.cgi ')
- 874 self.in_table or self.in_list):
- 875 result.append(self.formatter.paragraph(1, css_class="line867"))
- 876 result.append(self.replace(match))
- 877 lastpos = match.end()
- 878
- result = ['<p class="line867">']
- result.append = <built-in method append of list object at 0x2055170>
- self = <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>
- self.replace = <bound method Parser.replace of <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>>
- match = <_sre.SRE_Match object at 0x2089580>
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in replace (self=<MoinMoin.parser.wiki.Parser instance at 0x1ba9950>, match=<_sre.SRE_Match object at 0x2089580>)
- 903 # Get replace method and replece hit
- 904 replace = getattr(self, '_' + type + '_repl')
- 905 result.append(replace(hit))
- 906 return ''.join(result)
- 907 else:
- result = []
- result.append = <built-in method append of list object at 0x2055050>
- replace = <bound method Parser._url_repl of <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>>
- hit = u'inline:pythontest.cgi'
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in _url_repl (self=<MoinMoin.parser.wiki.Parser instance at 0x1ba9950>, word=u'inline:pythontest.cgi')
- 374 return self.interwiki([word])
- 375 if scheme in self.attachment_schemas:
- 376 return self.attachment([word])
- 377
- 378 if wikiutil.isPicture(word):
- self = <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>
- self.attachment = <bound method Parser.attachment of <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>>
- word = u'inline:pythontest.cgi'
/usr/local/lib/python2.5/site-packages/MoinMoin/parser/wiki.py in attachment (self=<MoinMoin.parser.wiki.Parser instance at 0x1ba9950>, url_and_text=[u'inline:pythontest.cgi'], **kw={})
- 225 # inline the attachment
- 226 if inline:
- 227 return self.formatter.attachment_inlined(url, text)
- 228
- 229 return self.formatter.attachment_link(url, text)
- self = <MoinMoin.parser.wiki.Parser instance at 0x1ba9950>
- self.formatter = <MoinMoin.formatter.text_html.Formatter instance at 0x1ba9998>
- self.formatter.attachment_inlined = <bound method Formatter.attachment_inlined of <M...atter.text_html.Formatter instance at 0x1ba9998>>
- url = u'pythontest.cgi'
- text = u'pythontest.cgi'
/usr/local/lib/python2.5/site-packages/MoinMoin/formatter/base.py in attachment_inlined (self=<MoinMoin.formatter.text_html.Formatter instance at 0x1ba9998>, url=u'pythontest.cgi', text=u'pythontest.cgi', **kw={})
- 118 fpath = AttachFile.getFilename(self.request, pagename, fname)
- 119 base, ext = os.path.splitext(filename)
- 120 Parser = wikiutil.getParserForExtension(self.request.cfg, ext)
- 121 if Parser is not None:
- 122 try:
- Parser undefined
- global wikiutil = <module 'MoinMoin.wikiutil' from '/usr/local/lib/python2.5/site-packages/MoinMoin/wikiutil.pyc'>
- wikiutil.getParserForExtension = <function getParserForExtension at 0x1b968c0>
- self = <MoinMoin.formatter.text_html.Formatter instance at 0x1ba9998>
- self.request = <MoinMoin.request.RequestCGI object at 0x7f0b31924490>
- self.request.cfg = <wikiconfig.Config instance at 0x1c4b950>
- ext = u'.cgi'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiutil.py in getParserForExtension (cfg=<wikiconfig.Config instance at 0x1c4b950>, extension=u'.cgi')
- 907 for pname in getPlugins('parser', cfg):
- 908 try:
- 909 Parser = importPlugin(cfg, 'parser', pname, 'Parser')
- 910 except PluginMissingError:
- 911 continue
- Parser = <class wikiconfig.plugin.parser.raw.Parser at 0x2062a70>
- global importPlugin = <function importPlugin at 0x1b96578>
- cfg = <wikiconfig.Config instance at 0x1c4b950>
- pname = 'sctable-1.5.2-5'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiutil.py in importPlugin (cfg=<wikiconfig.Config instance at 0x1c4b950>, kind='parser', name='sctable-1.5.2-5', function='Parser')
- 802 """
- 803 try:
- 804 return importWikiPlugin(cfg, kind, name, function)
- 805 except PluginMissingError:
- 806 return importBuiltinPlugin(kind, name, function)
- global importWikiPlugin = <function importWikiPlugin at 0x1b965f0>
- cfg = <wikiconfig.Config instance at 0x1c4b950>
- kind = 'parser'
- name = 'sctable-1.5.2-5'
- function = 'Parser'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiutil.py in importWikiPlugin (cfg=<wikiconfig.Config instance at 0x1c4b950>, kind='parser', name='sctable-1.5.2-5', function='Parser')
- 815 raise PluginMissingError
- 816 moduleName = '%s.plugin.%s.%s' % (cfg.siteid, kind, name)
- 817 return importNameFromPlugin(moduleName, function)
- 818
- 819
- global importNameFromPlugin = <function importNameFromPlugin at 0x1b966e0>
- moduleName = 'wikiconfig.plugin.parser.sctable-1.5.2-5'
- function = 'Parser'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiutil.py in importNameFromPlugin (moduleName='wikiconfig.plugin.parser.sctable-1.5.2-5', name='Parser')
- 834 Raise PluginAttributeError if name does not exists.
- 835 """
- 836 module = __import__(moduleName, globals(), {}, [name])
- 837 try:
- 838 return getattr(module, name)
- module undefined
- builtin __import__ = <built-in function __import__>
- moduleName = 'wikiconfig.plugin.parser.sctable-1.5.2-5'
- builtin globals = <built-in function globals>
- name = 'Parser'
ImportError
No module named sctable-1.5.2-5
- args = ('No module named sctable-1.5.2-5',)
- message = 'No module named sctable-1.5.2-5'
System Details
- Date: Wed, 10 Jun 2026 11:51:05 +0000
- Platform: Linux mx.ipvision.com.ar 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64
- Python: Python 2.5.4 (/usr/local/bin/python2.5)
- MoinMoin: Release 1.5.8 (release)