When we are trying to generate .exe
file for our python project, normally we use pyinstaller. If you are writing python eel project, basically in the background, eel encapsulate pyinstaller.
But sometimes we want to refer the external file in our project, for example for config or setting files. In development environment, we didn't found any issue, but when we run generated .exe file, we may encounterd error saying that cannot find the specific external files. The cause of this error is when you run .exe file, the app is referring the local python interpreter not the one packaged inside of .exe file.
In this blog, I wrote a function to refer the differrent project path for dev env and production.
Commands we use to generate .exe file
# eel command to generate .exe file
# where web is the dir for static files
python -m eel --onefile main.py web
# pyinstaller command to generate .exe file
pyinstaller --onefile -w main.py
function refer different path for dev env and production.
def get_app_running_path():
# for .exe file
if getattr(sys, 'frozen', False):
app_path = os.path.dirname(sys.executable)
else:
# for dev environment
app_path = os.path.dirname(__file__)
return app_path
Top comments (1)
Nice, thank you