问题描述
我正在尝试让 Arelle 使用 Python 3.6.9 在 Ubuntu linux 18.04 上工作。
步骤 1:(下载 Arelle 软件):
git clone https://github.com/Arelle/Arelle.git -b lxml
第 2 步安装 Python LXML:
apt-get install -y python-lxml
第 3 步安装 Python tk:
由于错误:“没有名为 tkinter 的模块”
...我安装:
apt-get install python3-tk
当需要从终端启动 Arelle 时,我使用:
python3 arelleGUI.pyw
然后我收到以下错误:
Traceback (most recent call last):
File "arelleGUI.pyw",line 9,in <module>
from arelle import CntlrWinMain
File "/tmp3/Arelle/arelle/CntlrWinMain.py",line 22,in <module>
from arelle import Cntlr
File "/tmp3/Arelle/arelle/Cntlr.py",line 8,in <module>
from arelle import ModelManager
File "/tmp3/Arelle/arelle/ModelManager.py",in <module>
from arelle import (ModelXbrl,Validate,disclosureSystem)
File "/tmp3/Arelle/arelle/Validate.py",ModelVersReport,XbrlConst,ModelDocument,File "/tmp3/Arelle/arelle/ModelVersReport.py",in <module>
from arelle import (XbrlConst,XbrlUtil,XmlUtil,UrlUtil,ModelXbrl,ModelVersObject)
File "/tmp3/Arelle/arelle/ModelDocument.py",ValidateFilingText,XmlValidate)
File "/tmp3/Arelle/arelle/ValidateFilingText.py",line 16,in <module>
docCheckPattern = re.compile(r"&\w+;|[^0-9A-Za-z`~!@#$%&\*\(\)\.\-+ \[\]\{\}\|\\:;\"'<>,_?/=\t\n\r\m\f]") # won't match &#nnn;
File "/usr/lib/python3.6/re.py",line 233,in compile
return _compile(pattern,flags)
File "/usr/lib/python3.6/re.py",line 301,in _compile
p = sre_compile.compile(pattern,flags)
File "/usr/lib/python3.6/sre_compile.py",line 562,in compile
p = sre_parse.parse(p,flags)
File "/usr/lib/python3.6/sre_parse.py",line 855,in parse
p = _parse_sub(source,pattern,flags & SRE_FLAG_VERBOSE,0)
File "/usr/lib/python3.6/sre_parse.py",line 416,in _parse_sub
not nested and not items))
File "/usr/lib/python3.6/sre_parse.py",line 527,in _parse
code1 = _class_escape(source,this)
File "/usr/lib/python3.6/sre_parse.py",line 336,in _class_escape
raise source.error('bad escape %s' % escape,len(escape))
sre_constants.error: bad escape \m at position 67
我发现此 SO question 似乎与该问题有关。
解决方法
这是 Arelle 中的一个错误,它在 Python 3.6 及更高版本中出现。它有一个 pull request ,但它仍然是开放的(自 2017 年 7 月以来)。鉴于 Python 3.6 已经发布了一段时间,我不知道为什么还没有修复。
您正在使用 lxml
分支,它一直是 stale for 10 years。所以也许这个错误实际上已经在主分支上修复了(即使拉取请求仍然打开),但没有在 lxml
分支上修复。如果您可以选择,请先尝试从 master 安装。