Description
When including a Table of Contents on a page, and there is a table on the same page which includes a combined cell, I get the following Error:
<<TableOfContents: execution failed [cannot import name AS_IS] (see also the log)>>
When there are only single cells, the Table of Contents is shown as expected.
Steps to reproduce
The following code gives an error:
<<TableOfContents>> ||<-2> test || || test || test ||
This code works fine:
<<TableOfContents>> || test || test || || test || test ||
Example
Component selection
- general
Details
MoinMoin Version
1.9.3
OS and Version
Debian Linux
Python Version
2.5.2
Server Setup
Apache server with wiki in home folder
Server Details
Language you are using the wiki in (set in the browser/UserPreferences)
en
Workaround
Discussion
Please attach the full traceback from the log file.
Traceback
2010年08月02日 15:00:05,081 MoinMoin.macro ERROR Macro TableOfContents (page: 'linuxProgramming') raised an exception: Traceback (most recent call last): File "/home/user/lib/python/MoinMoin/macro/__init__.py", line 122, in execute return execute(self, args) File "/home/user/lib/python/MoinMoin/macro/__init__.py", line 107, in <lambda> _self.request, call, _args, [_self]) File "/home/user/lib/python/MoinMoin/wikiutil.py", line 1954, in invoke_extension_function return function(*fixed_args, **kwargs) File "/home/user/lib/python/MoinMoin/macro/TableOfContents.py", line 165, in macro_TableOfContents omit_footnotes=True) File "/home/user/lib/python/MoinMoin/web/contexts.py", line 296, in redirectedOutput function(*args, **kw) File "/home/user/lib/python/MoinMoin/Page.py", line 1198, in send_page start_line=pi['lines']) File "/home/user/lib/python/MoinMoin/Page.py", line 1288, in send_page_content self.format(parser) File "/home/user/lib/python/MoinMoin/Page.py", line 1309, in format parser.format(self.formatter) File "/home/user/lib/python/MoinMoin/parser/text_moin_wiki.py", line 1554, in format formatted_line = self.scan(line, inhibit_p=inhibit_p) File "/home/user/lib/python/MoinMoin/parser/text_moin_wiki.py", line 1364, in scan result.append(self.replace(match, inhibit_p)) File "/home/user/lib/python/MoinMoin/parser/text_moin_wiki.py", line 1408, in replace result.append(replace_func(hit, match.groupdict())) File "/home/user/lib/python/MoinMoin/parser/text_moin_wiki.py", line 1167, in _table_repl attrs, attrerr = self._getTableAttrs(word) File "/home/user/lib/python/MoinMoin/parser/text_moin_wiki.py", line 1144, in _getTableAttrs attr, msg = wikiutil.parseAttributes(self.request, attrdef, '>', table_extension) File "/home/user/lib/python/MoinMoin/wikiutil.py", line 1996, in parseAttributes found_flag, msg = extension(key, parser, attrs) File "/home/user/lib/python/MoinMoin/parser/text_moin_wiki.py", line 1141, in table_extension return found, self.formatter.rawHTML(msg) File "/home/user/lib/python/MoinMoin/formatter/__init__.py", line 371, in rawHTML import formatter, htmllib File "/usr/lib/python2.5/htmllib.py", line 9, in <module> from formatter import AS_IS ImportError: cannot import name AS_IS
Explanation
In the sys.path variable are two locations where a "formatter" is found, one in the standard installation, one in the MoinMoin installation. These scripts/modules conflict in namespace.
There is a file /usr/lib/python2.5/formatter.py which includes a AS_IS, which htmllib depends on, but due to MoinMoin formatter which is also in the namespace, htmllib mistakenly directs to the MoinMoin formatter.
This error is described om the Python webpage: As chapter 6.2.1 from http://docs.python.org/tutorial/modules.html tells, a script should not have the same name as a standard module otherwise errors can occur.
Workaround for my installation
If I add the following lines to /home/user/lib/python/MoinMoin/formatter/init.py before line 371, it works fine:
371 import sys 372 if '/home/user/lib/python/MoinMoin' in sys.path: 373 sys.path.remove('/home/user/lib/python/MoinMoin')
Solution
There was a misconfiguration in the moin.cgi file. It was mistakenly added /home/user/lib/python/MoinMoin to sys.path.
Plan
- Priority:
- Assigned to:
- Status: