python 3.2: cx_freeze не импортирует все pyserial - PullRequest
1 голос
/ 20 июля 2011

У меня проблемы со сборкой exe версии моего скрипта на python 3.2.Скрипт требует pyserial и собирается с использованием cx_freeze.Однако, когда я запускаю exe, я получаю:

Traceback (most recent call last):
File "C:\Python32\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 27,
in   <module>
  exec(code, m.__dict__)
File "my_serial_program.py", line 1, in <module>
  import serial
File "C:\Python32\lib\site-packages\serial\__init__.py", line 19, in <module>
  from .serialwin32  import *
File "C:\Python32\lib\site-packages\serial\serialwin32.py", line 12, in <module>
  from . import win32
ImportError: cannot import name win32

Выполняя небольшой анализ, Pyserial site-package имеет модуль "win32.py" (в дополнение к serialwin32.py);однако в сжатой lib, которую создает cx_freeze, win32.py отсутствует.Простое размещение PyC-версии не решает проблему.Также не работает cx_freeze "includes = []".

Есть идеи?Мой вопрос даже убедителен (я довольно плохо знаком с питоном)?

1 Ответ

0 голосов
/ 27 марта 2012

У меня была такая же проблема.Существует возможность включить дополнительные модули, как указано в cx_Freeze ImportError: невозможно импортировать документацию с именами и для cx_Freeze

Просто добавьте --include-modules serial.win32

...