QTI Migration Tool "provided validator QTIPluginValidator failed to load"

40 views
Skip to first unread message

Andrew Matthews

unread,
Oct 31, 2013, 8:36:08 AM10/31/13
to canvas-l...@googlegroups.com
No luck in IRC, so here's the problem:

I need to get course export/import/copy working, so I've installed the QTI Migration Tool into vendor/QTIMigrationTool.  I follow all the instructions on the github wiki page for the tool.  However, when I go to the plugins page to enable QTI Exporter I get an error.  There is a flash notice that says "There was an error saving the plugin settings" and the page itself says "provided validator QTIPluginValidator failed to load."

I've found that this message is generated by the validate_settings(plugin_setting, settings) method (https://github.com/instructure/canvas-lms/blob/stable/lib/canvas/plugin.rb#L126) in lib/canvas/plugin.rb, but I'm not sure why it's failing.   I see that the validator file exists within the QTIMigrationTool, so why is it that it can't to be loaded? I was able to enable the plugin before I even had the QTIMigrationTool, which seems odd since the QTIPluginValidator certainly didn't load then.

What do I need to do to get the plugin enabled?

Christopher Bennell

unread,
Oct 31, 2013, 10:12:49 AM10/31/13
to canvas-l...@googlegroups.com
That tool requires Python; is it installed on your server? 

Andrew Matthews

unread,
Oct 31, 2013, 11:36:09 AM10/31/13
to canvas-l...@googlegroups.com
Yes, but there are two versions and only one is a version 2.  That could be the root of the problem.  I have one in /usr/bin/python and one in /usr/bin/python26.  Would the tool know to look for python26 rather than just python?

Andrew Matthews

unread,
Oct 31, 2013, 4:10:44 PM10/31/13
to canvas-l...@googlegroups.com
I've learned that all the python files use the '#! /usr/bin/env python' bit at the top of each file to load the proper python.  It apparently looks for the first one it finds in your $PATH.  So I symlinked to python26 and added that symlink to the $PATH variable in .bash_profile.  Now when I run '/usr/bin/env python' it starts python 2.6 where it was starting 2.4 before.  I assume this means the application is also sourcing python 2.6 when it makes the call to load the interpreter in the executable.  However, I'm still getting the error.  Is there a way for me to tell what python the application is loading when it executes the .py files?  Any other possibilities?
Reply all
Reply to author
Forward
0 new messages