简体   繁体   English

cx-freeze可执行文件在重新导入时崩溃

[英]cx-freeze executable crashes on importing re

I have a small (< 300 lines) program that I'd like to bundle for release on Windows. 我有一个小的程序(<300行),我希望将其捆绑在Windows上发布。 Sadly, whenever I run the executable, it fails when it attempts to import anything. 可悲的是,每当我运行该可执行文件时,它在尝试导入任何内容时都会失败。 It crashes on the very first line, which is import re, configparser as conf . 它在第一行崩溃,即import re, configparser as conf

c:\Python33\opencourses\dist>.\opencourses.exe
Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 2
7, in <module>
    exec(code, m.__dict__)
  File "opencourses.py", line 19, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\re.py", line 122, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\sre_compile.py", line 14, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\sre_parse.py", line 17, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\sre_constants.py", line 18, in <module>
ImportError: cannot import name MAXREPEAT

Edit: Actually, it's specifically the re module which is causing the issue. 编辑:实际上,实际上是导致问题的re模块。 I tested that by changing which modules I import first -- time imports fine, but urllib , which somehow has a dependency on re , fails with a similar error. 我通过更改我首先导入的模块进行了测试- time导入很好,但是以某种方式依赖于re urllib失败,并出现类似的错误。

Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 2
7, in <module>
    exec(code, m.__dict__)
  File "opencourses.py", line 20, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1616, in _handle
_fromlist
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python33\lib\urllib\request.py", line 84, in <module>
    import base64
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\base64.py", line 9, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\re.py", line 122, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\sre_compile.py", line 14, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\sre_parse.py", line 17, in <module>
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_a
nd_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_a
nd_load_unlocked
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 497, in set_pack
age_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 510, in set_load
er_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 608, in _require
s_frozen_wrapper
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 713, in load_mod
ule
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 313, in _call_wi
th_frames_removed
  File "C:\Python\64-bit\3.3\lib\sre_constants.py", line 18, in <module>
ImportError: cannot import name MAXREPEAT

Sadly, this means I can't work around my own re dependence, since other modules depend on it as well :( 可悲的是,这意味着我不能变通解决我自己re依赖,因为其他模块依赖于它,以及:(

I found another question with the same problem, and fortunately the same solution. 我发现了另一个有相同问题的问题,幸运的是有相同的解决方案。 I updated my install from 3.3.0 to 3.3.3 and now it all works great. 我将安装从3.3.0更新到3.3.3,现在一切正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM