描述
用python开发了一个opc client应用,调试没有问题后,使用pyinstaller打包成exe,测试exe运行也没有问题,正常使用。
在某次重装win10系统后,在此运行exe就开始报错了,详细内容如下:
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 56377)
Traceback (most recent call last):
File "SocketServer.py", line 290, in _handle_request_noblock
File "SocketServer.py", line 318, in process_request
File "SocketServer.py", line 331, in finish_request
File "SocketServer.py", line 652, in __init__
File "BaseHTTPServer.py", line 340, in handle
File "BaseHTTPServer.py", line 328, in handle_one_request
File "httpserver.py", line 189, in do_POST
File "httpserver.py", line 49, in handle_getOpcClientDetail
File "opc_client.py", line 17, in open_client
File "OpenOPC.py", line 171, in __init__
File "site-packages\win32com\client\gencache.py", line 534, in EnsureDispatch
File "site-packages\win32com\client\gencache.py", line 518, in EnsureModule
File "site-packages\win32com\client\gencache.py", line 287, in MakeModuleForTypelib
File "site-packages\win32com\client\makepy.py", line 286, in GenerateFromTypeLibSpec
File "site-packages\win32com\client\gencache.py", line 548, in AddModuleToCache
File "site-packages\win32com\client\gencache.py", line 627, in _GetModule
File "c:\users\22078863\appdata\local\temp\tmpazmzya\gen_py\28E68F91-8D75-11D1-8DC3-3C302A000000x0x1x0.py", line 10, in <module>
import win32com.client.CLSIDToClass, pythoncom, pywintypes
File "Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 161, in load_module
File "Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 395, in load_module
File "site-packages\pythoncom.py", line 2, in <module>
File "Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 161, in load_module
File "Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 395, in load_module
File "site-packages\win32\lib\pywintypes.py", line 2, in <module>
File "Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 161, in load_module
File "Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 395, in load_module
File "os.py", line 120, in <module>
ImportError: No module named path
----------------------------------------
实在是搞不懂是为啥,path不是os模块中的吗,python自带啊,怎么还会出错,查了一天也没弄明白咋回事。
后来实在没办法了,将程序重新打包成了文件夹的形式,再运行就没有问题了。
总结
- 和windows环境可能有关系,因为同一个程序有的电脑可以运行,而且出问题的这台电脑之前也可以运行,但是重装系统之后就开始报错了。难道重装系统之后环境中缺少了某个依赖?
- 和pyinstaller的打包有关系,打包成文件夹就没有问题,打包成exe就有问题,可能打包成exe的时候有些依赖没打包进去,但是我不指定是哪出了问题。
- 实在搞不懂,大家有什么思路希望不吝赐教。