1

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

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

我已经在网上搜索过,其他人也遇到过同样的问题,但似乎没有出现任何解决方案。但我怀疑没有人成功地 cx_freezing 使用 PySerial 的东西。

我完全被困住了。任何帮助将非常感激

错误:

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

安装程序.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

没运气...

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

4

2 回答 2

3

好的,问题解决了。

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

以下线路工作:

packages = ['serial.win32'] 

给我自己和其他人的备忘录:一定要检查 dist 文件夹中实际包含的包。我不知道为什么 cx_Freeze 首先没有包含所有软件包,但这对我有用。

于 2012-01-04T12:42:02.687 回答
0

如果你可以使用不同的工具来冻结你的程序,PyInstaller说它支持 PySerial。

于 2012-01-03T22:17:07.890 回答