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 @@ -448,8 +448,8 @@ def runScriptCode(self):
448
448
filename = self .createTempFile ()
449
449
deleteTempFile = True
450
450
451
- self .pythonconsole .shell .runCommand ( "exec(Path('{0}').read_text())"
452
- . format ( filename . replace ( " \\ " , "/" )))
451
+ self .pythonconsole .shell .runFile ( filename )
452
+
453
453
if deleteTempFile :
454
454
Path (filename ).unlink ()
455
455
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