File tree Expand file tree Collapse file tree 2 files changed +21
-4
lines changed Expand file tree Collapse file tree 2 files changed +21
-4
lines changed Original file line number Diff line number Diff line change @@ -324,8 +324,8 @@ def runScriptCode(self):
324
324
filename = self .createTempFile ()
325
325
deleteTempFile = True
326
326
327
- self .pythonconsole .shell .runCommand ( "exec(Path('{0}').read_text())"
328
- . format ( filename . replace ( " \\ " , "/" )))
327
+ self .pythonconsole .shell .runFile ( filename )
328
+
329
329
if deleteTempFile :
330
330
Path (filename ).unlink ()
331
331
Original file line number Diff line number Diff line change @@ -81,10 +81,11 @@ def __init__(self):
81
81
except ModuleNotFoundError :
82
82
pass
83
83
84
- def execCommandImpl (self , cmd ):
84
+ def execCommandImpl (self , cmd , show_input = True ):
85
85
res = self .currentState ()
86
86
87
- self .writeCMD (cmd )
87
+ if show_input :
88
+ self .writeCMD (cmd )
88
89
import webbrowser
89
90
version = 'master' if 'master' in Qgis .QGIS_VERSION .lower () else \
90
91
re .findall (r'^\d.[0-9]*' , Qgis .QGIS_VERSION )[0 ]
@@ -291,3 +292,19 @@ def entered(self):
291
292
def write (self , txt ):
292
293
if sys .stderr :
293
294
sys .stderr .write (txt )
295
+
296
+ def runFile (self , filename ):
297
+ filename = filename .replace ("\\ " , "/" )
298
+ dirname = os .path .dirname (filename )
299
+
300
+ # Append the directory of the file to the path and set __file__ to the filename
301
+ self ._interpreter .execCommandImpl ("sys.path.append('{0}')" .format (dirname ), False )
302
+ self ._interpreter .execCommandImpl ("__file__ = '{0}'" .format (filename ), False )
303
+
304
+ try :
305
+ # Run the file
306
+ self .runCommand ("exec(Path('{0}').read_text())" .format (filename ))
307
+ finally :
308
+ # Remove the directory from the path and delete the __file__ variable
309
+ self ._interpreter .execCommandImpl ("del __file__" , False )
310
+ self ._interpreter .execCommandImpl ("sys.path.remove('{0}')" .format (dirname ), False )
You can’t perform that action at this time.
0 commit comments