我能够编写一个 python 脚本来检查标签之间的 edx 问题。但是我想从文件中包含一个 python 函数,以便在几个问题中重用代码。我尝试了以下代码:
<problem>
<script type="loncapa/python" src="/static/textinput.py" />
<customresponse cfn="check_function">
<script type="loncapa/python">
<![CDATA[
import json
def check_function(e, ans):
# ... my code ...
</script>
<jsinput
gradefn="getGrade"
get_statefn="getState"
set_statefn="setState"
initial_state='{"selectedChoice": "[]"}'
width="600"
html_file="/static/Ex1_3 v2.html"
title="Problem"
sop="false"/>
</customresponse>
</problem>
保存问题时出现以下错误:
问题block-v1:Casal+Basic1+1701+type@problem+block@55479f8087e64d2395b730037cbe83c3 has an error: cannot create LoncapaProblem block-v1:Casal+Basic1+1701+type@problem+block@55479f8087e64d2395b730037'cbe85b730037'cbe83没有属性N3 '代替'
回溯(最后一次调用):
文件“/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/capa_base.py”,第 234 行,init
self.lcp = self.new_lcp(self.get_state_for_lcp ())
文件“/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/capa_base.py”,第 328 行,在 new_lcp
capa_module=self,#njp 文件“/edx/app/edxapp/edx -platform/common/lib/capa/capa/capa_problem.py”,第 192 行,在init
self.context = self._extract_context(self.tree)
文件中“/edx/app/edxapp/edx-platform/common/lib/ capa/capa/capa_problem.py”,第 728 行,在 _extract_context
代码 = unescape(script.text, XMLESC)
文件“/usr/lib/python2.7/xml/sax/saxutils.py",第 46 行,在 unescape 中
数据 = data.replace("<", "<")
是否有可能做到这一点?如果是这样,使用标签是否正确:?当然文件 textinput.py 已上传并且在 python 中运行良好。
<script type="loncapa/python" src="/static/textinput.py" />