Search code examples
pythondllbuildcx-freeze

Python: CX_freeze build failing struct.error in win32verstamp


I was trying to freeze a python program on my Win10 machine with Python using Anaconda Spyder. This worked previously like 1-2 months ago with this script. Since then, i have changed a lot in the script, so i dont know what is happening and cant track it down myself.

This is the output given by cx-freeze:

PS C:\Users\Test\Documents\AMS_Jannis\Mk-medA\SimAMR> python setup_CX.py build
running build
running build_exe
creating directory C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024
copying C:\ProgramData\Anaconda3\lib\site-packages\cx_Freeze\bases\Console.exe -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\\SimAMR.exe
copying C:\ProgramData\Anaconda3\api-ms-win-crt-stdio-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-stdio-l1-1-0.dll
copying C:\ProgramData\Anaconda3\python36.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\python36.dll
copying C:\ProgramData\Anaconda3\VCRUNTIME140.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\VCRUNTIME140.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-math-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-math-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-locale-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-locale-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-string-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-string-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-runtime-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-runtime-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-convert-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-convert-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-time-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-time-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-environment-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-environment-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-process-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-process-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-heap-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-heap-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-conio-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-conio-l1-1-0.dll
copying C:\ProgramData\Anaconda3\api-ms-win-crt-filesystem-l1-1-0.dll -> C:\\Users\\Test\\Desktop\\SimAMR-Builds\\Build_20180110_152024\api-ms-win-crt-filesystem-l1-1-0.dll
Traceback (most recent call last):
  File "setup_CX.py", line 46, in <module>
    executables=[Executable(r"C:\Users\Test\Documents\AMS_Jannis\Mk-medA\SimAMR\simulation\simamr.py", targetName="SimAMR.exe", base = base)])
  File "C:\ProgramData\Anaconda3\lib\site-packages\cx_Freeze\dist.py", line 349, in setup
    distutils.core.setup(**attrs)
  File "C:\ProgramData\Anaconda3\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\ProgramData\Anaconda3\lib\distutils\dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "C:\ProgramData\Anaconda3\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "C:\ProgramData\Anaconda3\lib\distutils\command\build.py", line 135, in run
    self.run_command(cmd_name)
  File "C:\ProgramData\Anaconda3\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\ProgramData\Anaconda3\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "C:\ProgramData\Anaconda3\lib\site-packages\cx_Freeze\dist.py", line 219, in run
    freezer.Freeze()
  File "C:\ProgramData\Anaconda3\lib\site-packages\cx_Freeze\freezer.py", line 618, in Freeze
    self._FreezeExecutable(executable)
  File "C:\ProgramData\Anaconda3\lib\site-packages\cx_Freeze\freezer.py", line 227, in _FreezeExecutable
    self._AddVersionResource(exe)
  File "C:\ProgramData\Anaconda3\lib\site-packages\cx_Freeze\freezer.py", line 167, in _AddVersionResource
    stamp(fileName, versionInfo)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32\lib\win32verstamp.py", line 157, in stamp
    vs = VS_VERSION_INFO(vmaj, vmin, vsub, vbuild, sdata, vdata, is_debug, is_dll)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32\lib\win32verstamp.py", line 101, in VS_VERSION_INFO
    ffi = VS_FIXEDFILEINFO(maj, min, sub, build, debug, is_dll)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32\lib\win32verstamp.py", line 45, in VS_FIXEDFILEINFO
    0x00000000, # dwFileDateLS
struct.error: argument out of range

Solution

  • I was able to solve the problem. I was so stupid to insert a wrong version number of the freezed app in my setup.py-file for cxfreeze build. In there, i thought like 2 months ago to have a version number with some other characters in it and did not test it back then. In the end the version number contained an underline, which is not allowed! Only X.X-something is.