首先感谢dima_zy为我们提出了解决办法:
以前都是在做嵌入式的程序,最近为了配合一个产品,做了一个pc端的UI软件,选用了Python来做,Python3.1+PyQT4.7.2,程序做的差不多了,准备打包,在网上找了找,有各种方法可以来做,比如py2exe,pyinstaller,cx_freeze,最后选用了cx_freeze。
由于我的程序里头加载了serial模块,但编译的时候老是报错:
- 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
找了很久没有找到办法解决,后来想了一个绕过去的办法:
1. 修改serial目录下的文件:serialwin32.py
#from . import win32 ——> import win32
2. 将serial目录下的win32.py文件拷贝到程序目录下
3. 在setup.py文件中添加include["win32"]