PDA

View Full Version : Current working directory in Vizard Executable


kevin
06-16-2011, 09:38 AM
Hi all,

I'm building an executable in Vizard which at one point brings up a file browser, and I was hoping that the starting directory for this browser could be in the same directory as the executable being run. However, it seems that when Vizard publishes an .exe, it merely creates a wrapper around the python script which was being published. That script and the other necessary files (.pycs, etc) are then loaded into the AppData/Local/Temp folder of the current user, and so code like:

dir = os.getcwd()

and

if hasattr(sys, 'frozen'):
dir = os.path.dirname(sys.executable)

only give me the directory for the Temp folder, rather than the directory of the actual executable file being run.

Is there any way around this?

kevin
06-16-2011, 09:40 AM
I should also mention that the if-statement in the second block of code isn't even evaluated to be true, since a .py script is technically still being interpreted. The sys module is not frozen.

farshizzo
06-16-2011, 10:07 AM
You can use the viz.res.getPublishedPath command to get the directory of the published executable.

kevin
06-16-2011, 11:31 AM
Worked perfectly, thank you very much!