Hello,
I'm trying out Schooltool and have been able to install version 2.8 and check its features as it happens the CanDo though interesting falls outside what I'd normally use in Nigeria! So I decided to see what's different with Schooltool.peas since is targeting an African audience.
I've downloaded the source and am trying to run it within a sandbox environment following the steps outline at (http://book.schooltool.org/dev_sandbox.html). I also what to use the opportunity to understand the code too see if I can make changes of me out and if possible contribute.
Well, after following the steps, issuing the command "make run" to run the program results in the following error (do bear with me the stack trace is quite long):
**************************************************************************
$ make run
bin/start-schooltool-instance instance
Reading configuration from /home/klone/workspace/schooltool/peas/instance/schooltool.conf
Traceback (most recent call last):
File "bin/start-schooltool-instance", line 157, in <module>
sys.exit(schooltool.paste.run.main())
File "/home/klone/workspace/schooltool/peas/eggs/schooltool-2.8.1_r3799-py2.7.egg/schooltool/paste/run.py", line 132, in main
paste.script.command.run(['serve', conf_file] + extra_options)
File "/home/klone/workspace/schooltool/peas/eggs/PasteScript-1.7.5-py2.7.egg/paste/script/command.py", line 104, in run
invoke(command, command_name, options, args[1:])
File "/home/klone/workspace/schooltool/peas/eggs/PasteScript-1.7.5-py2.7.egg/paste/script/command.py", line 143, in invoke
exit_code = runner.run(args)
File "/home/klone/workspace/schooltool/peas/eggs/PasteScript-1.7.5-py2.7.egg/paste/script/command.py", line 238, in run
result = self.command()
File "/home/klone/workspace/schooltool/peas/eggs/PasteScript-1.7.5-py2.7.egg/paste/script/serve.py", line 284, in command
relative_to=base, global_conf=vars)
File "/home/klone/workspace/schooltool/peas/eggs/PasteScript-1.7.5-py2.7.egg/paste/script/serve.py", line 321, in loadapp
**kw)
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 247, in loadapp
return loadobj(APP, uri, name=name, **kw)
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 272, in loadobj
return context.create()
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 710, in create
return self.object_type.invoke(self)
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 144, in invoke
**context.local_conf)
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/util.py", line 55, in fix_call
val = callable(*args, **kw)
File "/home/klone/workspace/schooltool/peas/eggs/Paste-1.7.5.1-py2.7.egg/paste/urlmap.py", line 25, in urlmap_factory
app = loader.get_app(app_name, global_conf=global_conf)
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 350, in get_app
name=name, global_conf=global_conf).create()
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 710, in create
return self.object_type.invoke(self)
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 146, in invoke
return fix_call(context.object, context.global_conf, **context.local_conf)
File "/home/klone/workspace/schooltool/peas/eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/util.py", line 55, in fix_call
val = callable(*args, **kw)
File "/home/klone/workspace/schooltool/peas/eggs/schooltool-2.8.1_r3799-py2.7.egg/schooltool/paste/main.py", line 45, in schooltool_app_factory
os.path.join(global_conf['here'], config_file))
File "/home/klone/workspace/schooltool/peas/eggs/schooltool-2.8.1_r3799-py2.7.egg/schooltool/paste/main.py", line 34, in __init__
db = self.setup(options)
File "/home/klone/workspace/schooltool/peas/eggs/schooltool-2.8.1_r3799-py2.7.egg/schooltool/app/main.py", line 672, in setup
self.configure(options)
File "/home/klone/workspace/schooltool/peas/eggs/schooltool-2.8.1_r3799-py2.7.egg/schooltool/app/main.py", line 502, in configure
site_zcml=options.config.site_definition)
File "/home/klone/workspace/schooltool/peas/eggs/schooltool-2.8.1_r3799-py2.7.egg/schooltool/app/main.py", line 457, in configureComponents
site_zcml, context=context)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 649, in file
include(context, name, package)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
self._parser.Parse(data, isFinal)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 352, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
actions = self.handler(context, **args)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
self._parser.Parse(data, isFinal)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 352, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
actions = self.handler(context, **args)
File "/home/klone/workspace/schooltool/peas/eggs/z3c.autoinclude-0.3.5-py2.7.egg/z3c/autoinclude/zcml.py", line 104, in includePluginsDirective
includeZCMLGroup(_context, info, filename)
File "/home/klone/workspace/schooltool/peas/eggs/z3c.autoinclude-0.3.5-py2.7.egg/z3c/autoinclude/zcml.py", line 30, in includeZCMLGroup
include(_context, filename, includable_package)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
self._parser.Parse(data, isFinal)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 352, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
actions = self.handler(context, **args)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
self._parser.Parse(data, isFinal)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 352, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
actions = self.handler(context, **args)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
self._parser.Parse(data, isFinal)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 352, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
actions = self.handler(context, **args)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
self._parser.Parse(data, isFinal)
File "/usr/lib/python2.7/xml/sax/expatreader.py", line 352, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 705, in finish
args = toargs(context, *self.argdata)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 1397, in toargs
args[str(name)] = field.fromUnicode(s)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/fields.py", line 137, in fromUnicode
value = self.context.resolve(name)
File "/home/klone/workspace/schooltool/peas/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 179, in resolve
mod = __import__(mname, *_import_chickens)
File "/home/klone/workspace/schooltool/peas/src/schooltool/peas/browser/report.py", line 80, in <module>
from schooltool.lyceum.journal.journal import TeacherAMRequirement
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/home/klone/workspace/schooltool/peas/instance/site.zcml", line 9.2-9.57
ZopeXMLConfigurationError: File "/home/klone/workspace/schooltool/peas/eggs/schooltool-2.8.1_r3799-py2.7.egg/schooltool/skin/flourish/instance/configure.zcml", line 58.2-58.60
ZopeXMLConfigurationError: File "/home/klone/workspace/schooltool/peas/src/schooltool/peas/plugin.zcml", line 6.2-6.25
ZopeXMLConfigurationError: File "/home/klone/workspace/schooltool/peas/src/schooltool/peas/configure.zcml", line 19.2-19.32
ZopeXMLConfigurationError: File "/home/klone/workspace/schooltool/peas/src/schooltool/peas/browser/configure.zcml", line 42.2-42.32
ZopeXMLConfigurationError: File "/home/klone/workspace/schooltool/peas/src/schooltool/peas/browser/report.zcml", line 9.2-20.8
ImportError: cannot import name TeacherAMRequirement
make: *** [run] Error 1
**************************************************************************
Even after I enabled the schooltool.gradebook and schooltool.lyceum.journal plugin the same error persist. So I commented line 9 of site.zcml to skip the error in order to test the install however I run into the error below: first it says the blobs directory is not created which I manually create, afterwards I get this:
**************************************************************************
bin/start-schooltool-instance instance
Reading configuration from /home/klone/workspace/schooltool/peas/instance/schooltool.conf
2014-09-02 20:42:34,457 ['/home/klone/workspace/schooltool/peas/instance/run/zeo.sock'] ClientStorage (pid=4526) created RW/normal for storage: '1'
2014-09-02 20:42:34,470 (4526) Blob directory `/home/klone/workspace/schooltool/peas/instance/var/blobs` is unused and has no layout marker set. Selected `bushy` layout.
2014-09-02 20:42:34,470 created temporary cache file '<fdopen>'
2014-09-02 20:42:34,556 (4526) CW: error connecting to /home/klone/workspace/schooltool/peas/instance/run/zeo.sock: ENOENT
2014-09-02 20:42:39,562 (4526) CW: error connecting to /home/klone/workspace/schooltool/peas/instance/run/zeo.sock: ENOENT
**************************************************************************
Hi Abdul.
You need to use a couple of ARK branches in your buildout.cfg for schooltool.peas to work:
lp:~schooltool-owners/schooltool/ark
lp:~schooltool-owners/schooltool.lyceum.journal/ark
Note that this is still unstable code and you should not use it in PRODUCTION.