我能够编写一个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>

保存问题时出现以下错误:

问题块-v1:Casal Basic1 1701类型@问题块@ 55479f8087e64d2395b730037cbe83c3有错误:无法创建LoncapaProblem块-v1:Casal Basic1 1701类型@问题块@ 55479f8087e64d2395b730037cbe83c3:'NoneType'对象没有属性'replace'Trackback(最近最后调用):文件“/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 = data.replace (“<”,“<”)

是否有可能做到这一点?如果是这样,使用标签是否正确:?当然文件textinput.py已上传,并且在python中运行良好 .

<script type =“loncapa / python”src =“/ static / textinput.py”/>