Bläddra i källkod

Merge branch 'ensure-python-script-local-import'

* ensure-python-script-local-import:
  Ensure module located where python script is executed can be imported
Jean-Christophe Fillion-Robin 13 år sedan
förälder
incheckning
78a9af2da8
1 ändrade filer med 3 tillägg och 0 borttagningar
  1. 3 0
      Libs/Scripting/Python/Core/ctkAbstractPythonManager.cpp

+ 3 - 0
Libs/Scripting/Python/Core/ctkAbstractPythonManager.cpp

@@ -222,7 +222,10 @@ void ctkAbstractPythonManager::executeFile(const QString& filename)
   PythonQtObjectPtr main = ctkAbstractPythonManager::mainContext();
   PythonQtObjectPtr main = ctkAbstractPythonManager::mainContext();
   if (main)
   if (main)
     {
     {
+    QString path = QFileInfo(filename).absolutePath();
+    this->executeString(QString("import sys\nsys.path.insert(0, '%1')").arg(path));
     main.evalFile(filename);
     main.evalFile(filename);
+    this->executeString(QString("import sys\nif sys.path[0] == '%1': sys.path.pop(0)").arg(path));
     }
     }
 }
 }