Hello,
I have a wxPython app which spawns child processes using the wx.Execute
command and wx.Process
class, this works as expected. However, I also need to pass along additional environment parameters to indicate the working directory for the child process. The option seems available though the ExecuteEnv
parameter as indicated by the documentation for wx.Execute
(see below).
An optional pointer to additional parameters for the child process, such as its initial working directory and environment variables. This parameter is available in wxWidgets 2.9.2 and later only.
However, I cannot figure out how to use ExecuteEnv
in this context to get the desired effect. I’ve tried instancing it but an error is raised indicating that it’s not possible. I tried passing arguments over using a dict
assuming the function takes keyword arguments similar to Popen
, however that doesn’t work.
This is how I’m presently calling wx.Execute
:
ret_val = wx.Execute(command, flags, process)
Here is what I tried with ExecuteEnv
:
env = wx.ExecuteEnv() # error, cannot be instanced but present in the library
env["cmd"] = "path/to/working/dir" # perhaps it was suppose to work like this? doesn't though ...
# tried it even like this, but also doesn't work
# wx.ExecuteEnv["cmd"] = "path/to/working/dir"
ret_val = wx.Execute(command, flags, process, env) # passing the environment params this time
Any suggestions or workarounds to specify the working directory (or environment) for the child process?
Thank you.