首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在cx冻结python3.4应用程序中不可用的zlib

在cx冻结python3.4应用程序中不可用的zlib
EN

Stack Overflow用户
提问于 2016-02-22 14:49:14
回答 1查看 311关注 0票数 0

当我在Windows1064位(32位python)上使用cx_freeze将我的python3.4应用程序编译成一个可执行文件时,我从看似随机的导入尝试(例如导入getpass / import QtCore)中间歇性地得到以下运行时异常(大约是4中的1次):

代码语言:javascript
复制
zipimport.ZipImportError: can't decompress data; zlib not available

当我在启动时没有得到错误时,应用程序就可以正常运行。一些注意事项:

1-使用python 2.7构建的类似应用程序没有异常。

2-当我直接从.pyw文件(即解冻)运行时,我不会得到异常。

追踪:

代码语言:javascript
复制
File "c:\python\32-bit\3.4\lib\threading.py", line 921, in _bootstrap_inner
File ".\tempCheckout\CanPy\CanAsync.py", line 400, in run
File ".\tempCheckout\CanPy\CanAsync.py", line 483, in _connect
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1161, in _load_backward_compatible
File ".\tempCheckout\CanPy\CanSsh.py", line 1, in <module>
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1161, in _load_backward_compatible
File ".\tempCheckout\CanPy\CommUtil\SshTunnel.py", line 1, in <module>
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1161, in _load_backward_compatible
zipimport.ZipImportError: can't decompress data; zlib not available

而且,我发现这似乎与此相关:freeze "zlib not avaiable" error when using multiple threads

假设我的python3.4应用程序正在使用两个依赖于zlib的外部库,并且它的使用有一个锁。这些库不在python2.7中,因此我没有看到这个问题。如果我能够异步地停止这些库的加载,那么我可能会修复这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-22 17:42:55

好吧,我的假设似乎是正确的。图书馆被装入两个线程中。等待到第一个线程在第二个线程之前导入,似乎已经修复了这个问题。(虽然我可能只是改变了相对的时间,但如果结果是这样的话,我会更新的)。对这些说明的答复如下:

1-python2.7应用程序没有加载zlib,所以这是一个红鲱鱼。

我认为时间安排在.pyw中一定是如此,以至于这个问题没有发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35556615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档