python 3.2: cx_freeze未能导入全部pyserial
我在制作一个Python 3.2脚本的exe版本时遇到了一些问题。这个脚本需要用到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这个库里面有一个叫“win32.py”的模块(还有一个叫serialwin32.py的模块);但是在cx_freeze生成的压缩文件里,win32.py却缺失了。简单地放一个pyc版本也没法解决这个问题。而且使用cx_freeze的“includes = [ ]”也没有效果。
有没有什么建议?我的问题说得清楚吗(我对Python还比较陌生)?
1 个回答
0
我也遇到过同样的问题。可以选择添加额外的模块,具体可以参考cx_Freeze导入错误:无法导入名称和cx_Freeze的文档。
只需要在命令后面加上--include-modules serial.win32
就可以了。