3

I am trying to create a standalone executable with my python script using cx_Freeze. This is the error I am getting: error: [Errno 2] No such file or directory: 'C:\\Program Files\\Python37\\tcl\\tcl8.6'

Does this have anything to do with using a module such as PySimpleGUI? I am using PySimpleGUI 3.1.2.

How do I fix this?

Here is my code (setup.py and Track_Companion.py).

Note: Track_Companion.py is not yet finished.

Someone
  • 55
  • 1
  • 7
  • The only way I've created an EXE using PySimpleGUI is by using PyInstaller as shown in the readme. Side note... I would upgrade your PySimpleGUI. It's at 3.14.0 now. – Mike from PSG Nov 13 '18 at 04:55

2 Answers2

2

Instructions for making .EXE files from programs using PySimpleGUI can be found in the docs here.

To create the .EXE:

pyinstaller -wF yoursourcefile.py

I would upgrade your PySimpleGUI package prior to doing it.

Mike from PSG
  • 5,312
  • 21
  • 39
2
  1. cx_Freeze does not yet support Python 3.7, it has a bug. A bugfix exists but has not yet been released, however you can apply it manually, see What could be the reason for fatal python error:initfsencoding:unable to load the file system codec? and Cx_freeze crashing Python3.7.0. Or you can rollback to Python 3.6 if this is an option for you.
  2. Have you checked that C:\\Program Files\\Python37\\tcl\\tcl8.6 exists? It would anyway be better to let your setup script dynamically determine you Python installation directory using PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__)) as done in this answer.
  3. You need to tell cx_Freeze to include the Tcl and Tk DLLs using the build_exe option include_files as done in the same answer; if you are using cx_Freeze 5.1.1 or 5.1.0, you need to do it slightly differently, see this answer.
jpeg
  • 2,372
  • 4
  • 18
  • 31