Ошибка cx_freeze «zlib not avaiable» при использовании нескольких потоков

У меня есть приложение Python, которое отлично работает при запуске через стандартный интерпретатор, ноне когда заморожен сcx_freeze.

Мое приложение использует PythonThreading модуль, и обычно имеет около 5 работающих компонентов, каждый из которых может быть индивидуально включен / отключен в своей конфигурации, и каждый работает в своем собственном отдельном потоке.

С 1 или 2 включенными компонентами проблем нет. Однако, когда включены 3 или более компонентов, я вижу следующее сообщение об ошибке для всех или почти всех моих потоков:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Python\64-bit\3.3\lib\threading.py", line 637, in _bootstrap_inner
  File "<absolute path to my .py file on disk>", line 21, in run
    from module import screenshot
  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_with_frames_removed
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_and_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_and_load_unlocked
  File "<absolute path to my .py file on disk>", line 1, in <module>
    from PIL import ImageGrab
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1567, in _find_and_load
  File "C:\Python\64-bit\3.3\lib\importlib\_bootstrap.py", line 1534, in _find_and_load_unlocked
zipimport.ZipImportError: can't decompress data; zlib not available

Несколько вещей, на которые стоит обратить внимание:

Python этоне&nbsp;установлен вC:\Python\64-bit\3.3, поэтому я не уверен, почему этот путь появляется в выводе выше. Он установлен по умолчанию вC:\Python33, (Не уверен, является ли путь, показанный выше, фиктивным, или, возможно, путь человека, который составил одну из моих зависимостей.)Повторюсь - это начинает происходить постоянно, когда я запускаю более 2 потоков или около того. Этоникогда&nbsp;случается только с 1 активным потоком, и я никогда не видел, чтобы это случилось с 2 активными потоками.Эта проблематолько&nbsp;случается когдаcx_freeze&nbsp;используется. Запуск его с интерпретатором Python не вызывает ошибок. Я пробовал несколько разныхsetup.py&nbsp;директивы (например,appendScriptToLibrary, appendScriptToExe, copyDependentFiles, create_shared_zip), но вопрос всегда один и тот же.Мой код не использует функции zip - так что это должно быть что-то особенное для процесса замораживания.

Мои мысли до сих пор:

Я думаю, что есть некоторая проблема с потоком, пытающимся получить доступ кzlib&nbsp;или жеzipimport&nbsp;модули, когда их использует другой поток (то есть блокирует их). (Интересно, что этого не происходит для двух потоков.) Мой Google заставил меня провести некоторое исследование GIL - может ли это быть проблемой здесь? Или есть ли способ разрешить потокам захватывать только общую блокировку файла вместо эксклюзивной блокировки?Быть относительным новичком сcx_freezeЯ пробовал несколько разных способов, включаяzlib&nbsp;модуль вsetup.py, Тем не менее, я не думаю, что это проблема сzlib&nbsp;в частности, так как он работает за пределамиcx_freeze.

Окружающая обстановка:

Windows 7 64-битнаяPython 3.3 64-битныйcx_freeze 4.3.2

Видетьhttp://www.filedropper.com/threadtest&nbsp;для воспроизведения этого вопроса с минимальным кодом.