How to do a basic installation of MoinMoin on your system.
Contents
Contents
Before you can integrate MoinMoin into your web environment, you have to install the MoinMoin source code and data files using the standard Python distutils mechanism (setup.py). This page explains the steps you usually need to take to do this. For more details on the distutils installation process, consult the Installing Python Modules document in your Python documentation set.
The installation is similar on Windows and Linux (and other POSIX-type systems; for simplicity, we just say "Linux" in the docs).
We use text such as > command arguments to show what you have to type at the command prompt (also known as shell, terminal, etc.). In our examples "> " is the prompt, you don't have to type it in, you have to type what comes after it. Lines that do not begin with "> " are the answers to the commands you have typed. Read them carefully.
Check if Python is working
MoinMoin needs Python to run, so the first step is to check if an usable version of Python is installed and correctly set-up. If this is not the case, you will have to fix that before you can proceed.
The CHANGES file in the MoinMoin archive mentions what versions are supported. Python 2.3 is the minimum requirement for MoinMoin 1.5, but we suggest you use the latest Python release version.
You can download Python at http://www.python.org/download/.
If you are pretty sure an acceptable version of Python is installed but the commands below do not work, this may be because your Python files are not in the search path. Correctly setting the search path is outside the scope of this document; please ask for help on your favorite Python, Linux, or Windows discussion board.
If you have shell access, checking if Python is working is very simple. Just type the following command, and look at the result:
> python -V Python 2.3.4
If you don't have shell access, you can try using this pythontest.cgi script (it assumes that you are using a Linux kind of webserver). Upload the script to your cgi-bin directory, use chmod a+rx pythontest.cgi (or a similar command in your FTP program) to make it executable, and invoke it using your web browser.
--> -->
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 0x7f9b2d164450>)
- 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_print at 0x1e80668>
- self = <MoinMoin.request.RequestCGI object at 0x7f9b2d164450>
- self.page = <MoinMoin.Page.Page instance at 0x1e63c68>
- self.page.page_name = u'HelpOnInstalling/BasicInstallation'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiaction.py in do_print (pagename=u'HelpOnInstalling/BasicInstallation', request=<MoinMoin.request.RequestCGI object at 0x7f9b2d164450>)
- 486
- 487 def do_print(pagename, request):
- 488 do_show(pagename, request)
- 489
- 490
- global do_show = <function do_show at 0x1e80578>
- pagename = u'HelpOnInstalling/BasicInstallation'
- request = <MoinMoin.request.RequestCGI object at 0x7f9b2d164450>
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiaction.py in do_show (pagename=u'HelpOnInstalling/BasicInstallation', request=<MoinMoin.request.RequestCGI object at 0x7f9b2d164450>)
- 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 0x1e0b2f0>
- request = <MoinMoin.request.RequestCGI object at 0x7f9b2d164450>
- pagename = u'HelpOnInstalling/BasicInstallation'
- ).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 0x1f5d098>, request=<MoinMoin.request.RequestCGI object at 0x7f9b2d164450>, 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 = 7
/usr/local/lib/python2.5/site-packages/MoinMoin/Page.py in send_page_content (self=<MoinMoin.Page.Page instance at 0x1f5d098>, request=<MoinMoin.request.RequestCGI object at 0x7f9b2d164450>, Parser=<class MoinMoin.parser.wiki.Parser at 0x2060170>, 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})
- 1345 try:
- 1346 code = self.loadCache(request)
- 1347 self.execute(request, parser, code)
- 1348 except Exception, e:
- 1349 if not is_cache_exception(e):
- self = <MoinMoin.Page.Page instance at 0x1f5d098>
- self.execute = <bound method Page.execute of <MoinMoin.Page.Page instance at 0x1f5d098>>
- request = <MoinMoin.request.RequestCGI object at 0x7f9b2d164450>
- parser = <MoinMoin.parser.wiki.Parser instance at 0x1f2ee60>
- code = <code object <module> at 0x20648a0, file "HelpOnInstalling/BasicInstallation", line 2>
/usr/local/lib/python2.5/site-packages/MoinMoin/Page.py in execute (self=<MoinMoin.Page.Page instance at 0x1f5d098>, request=<MoinMoin.request.RequestCGI object at 0x7f9b2d164450>, parser=<MoinMoin.parser.wiki.Parser instance at 0x1f2ee60>, code=<code object <module> at 0x20648a0, file "HelpOnInstalling/BasicInstallation", line 2>)
- 1374 __file__ = os.path.join(MoinMoin.__loader__.archive, 'dummy')
- 1375 try:
- 1376 exec code
- 1377 except 'CacheNeedsUpdate':
- 1378 raise Exception('CacheNeedsUpdate')
- code = <code object <module> at 0x20648a0, file "HelpOnInstalling/BasicInstallation", line 2>
/var/www/wikivision/cgi-bin/HelpOnInstalling/BasicInstallation in
() /usr/local/lib/python2.5/site-packages/MoinMoin/formatter/base.py in attachment_inlined (self=<MoinMoin.formatter.text_html.Formatter instance at 0x1f5d680>, 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 0x1d398c0>
- self = <MoinMoin.formatter.text_html.Formatter instance at 0x1f5d680>
- self.request = <MoinMoin.request.RequestCGI object at 0x7f9b2d164450>
- self.request.cfg = <wikiconfig.Config instance at 0x1dee8c0>
- ext = u'.cgi'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiutil.py in getParserForExtension (cfg=<wikiconfig.Config instance at 0x1dee8c0>, 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 0x20ff530>
- global importPlugin = <function importPlugin at 0x1d39578>
- cfg = <wikiconfig.Config instance at 0x1dee8c0>
- pname = 'sctable-1.5.2-5'
/usr/local/lib/python2.5/site-packages/MoinMoin/wikiutil.py in importPlugin (cfg=<wikiconfig.Config instance at 0x1dee8c0>, 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 0x1d395f0>
- cfg = <wikiconfig.Config instance at 0x1dee8c0>
- 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 0x1dee8c0>, 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 0x1d396e0>
- 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:53:56 +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)