Python:CX_freeze在win32verstamp中构建失败的struct.error

问题描述 投票:1回答:2

我试图使用Anaconda Spyder在我的Win10机器上使用Python冻结python程序。这个脚本以前就像1-2个月前一样。从那以后,我在剧本中改变了很多,所以我不知道发生了什么,也无法自己追踪它。

这是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
python dll build cx-freeze
2个回答
0
投票

我能够解决问题。我很愚蠢,在我的setup.py文件中为cxfreeze构建插入了错误版本号的冻结应用程序。在那里,我想2个月前有一个版本号与其他一些字符,并没有测试它。最后版本号包含下划线,这是不允许的!只有X.X-something。


0
投票

我能够通过更改版本号来解决这个问题。

我的版本号是7.1.90003,因为它是7.2的测试版(即7.2 beta 3)。有多年的Windows经验,有些东西告诉我,版本号可能仅限于16位值,因此我将版本号更改为7.1.9003,并且它有效。

底线:版本号为7.1.90003导致错误,但将其更改为7.1.9003修复了它。

© www.soinside.com 2019 - 2024. All rights reserved.