Python,PySerial和cx-freeze

时间:2012-01-03 18:47:52

标签: python-3.x pyserial cx-freeze

尝试学习cx-freeze。我有一个python程序,我正在尝试冻结到exe。

我使用PySerial,无论我如何尝试包含win32似乎都没有帮助。我使用Python 3.2和win7。

我搜索网络很薄,其他人也有同样的问题,但似乎没有出现任何解决方案。但我怀疑没有人成功地使用PySerial进行cx_freezing。

我完全陷入困境。任何帮助将不胜感激

错误:

Traceback (most recent call last):
  File "C:\Python32\lib\site-packages\
7, in <module>
    exec(code, m.__dict__)
  File "snapper.py", line 8, in
  File "C:\Python32\lib\site-packages\
    from serial.serialwin32 import *
  File "C:\Python32\lib\site-packages\
e>
    from serial import win32
ImportError: cannot import name win32

Setup.py:

from cx_Freeze import setup,Executable

includefiles = ['caml.pkl', 'seql.pkl']
includes = ['DataBase', 'serial.win32']
excludes = ['Tkinter']
packages = []

setup(
    name = 'Setup',
    version = '0.1',
    description = 'Snapper configuration utility',
    author = 'LST',
    author_email = 'info@-.com',
    options = {'build_exe': {'excludes':excludes,'packages':packages,'include_files':includefiles}}, 
    executables = [Executable('snapper.py')]
)

知道从哪里开始? 提前致谢

我试图盲目导入:

if False:
   import serial.win32

没有运气......

也许我正在以错误的方式看待这个......

2 个答案:

答案 0 :(得分:3)

好的,问题解决了。

您需要使用包强制cx_Freeze包含serial.win32(不是“include”)

以下线路工作:

packages = ['serial.win32'] 

备忘录给我和我自己:请务必检查dist文件夹中是否有实际包含的包。我不知道为什么所有包都没有被cx_Freeze包含在内,但这对我有用。

答案 1 :(得分:0)

如果您可以使用其他工具冻结程序,PyInstaller表示它支持PySerial。