解决pyinstaller 打包报错找不到依赖pywin32 或pywin32-ctypes的错误

在尝试使用pyinstaller打包Python项目时遇到找不到pywin32或pywin32-ctypes错误。尽管已安装这些库,但问题仍然存在。经过排查,发现可能是导入问题。解决方案是修改python安装路径下PyInstaller的compat.py文件第212行,移除'from win32ctypes.pywin32'导入语句。遵循此方法后,打包过程成功。感谢一笑大佬提供的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用pyinstaller编译一个项目的时候发现老是报这个错误

但是这两个库确实安装了,这个是安装版本输出

pip show pywin32

pip show pywin32-ctypes

网上查了很久都没查到这个奇葩问题,初步怀疑是导包问题,后面终于找到了一笑大佬的文章知道了咋解决这个导包问题

解决方案:

找到python的安装路径下Lib\site-packages里面pyinstaller文件夹,可能不同的安装包层级不一样里面我的是"Lib\site-packages\PyInstaller-3.4-py2.7.egg\PyInstaller",找到“compat.py”这个文件定位到212

原文件:

在使用PyInstaller打包Python程序时,如果遇到提示缺少pypiwin32pywin32-ctypes依赖错误,而这两个库实际上已经安装,这通常是因为PyInstaller在检查依赖时使用了错误的导入方式。根据提供的资料《解决pyinstaller打包报错不到pypiwin32pywin32-ctypes依赖》,解决方案涉及到修改PyInstaller的源代码。具体来说,你需要打开PyInstaller的`compat.py`文件,到导入pywin32相关模块的代码块,并将其中的`from`导入语句改为`import`语句。这样做可以使PyInstaller在全局命名空间中查这些模块,而不仅仅是在特定包内。例如,将: 参考资源链接:[解决pyinstaller打包报错不到pypiwin32pywin32-ctypes依赖](https://wenku.youkuaiyun.com/doc/645cd96a95996c03ac3f8c0c) <pre> #from win32ctypes.pywin32 import pywintypes #noqa:F401 #from win32ctypes.pywin32 import win32api </pre> 修改为: <pre> import pywintypes import win32api </pre> 修改后,需要重新运行PyInstaller以尝试再次打包。这种方法可能需要一定的Python编程知识和对PyInstaller工作原理的理解,但实践证明,这能够有效解决一些因导入方式不正确导致的打包错误。如果你在解决打包错误后希望进一步提升对PyInstaller的理解和应用,建议详细阅读《解决pyinstaller打包报错不到pypiwin32pywin32-ctypes依赖》一文,它不仅包含了具体的代码修改方案,还介绍了遇到类似问题时的思考和调试过程,能够帮助你更全面地掌握PyInstaller打包技术。 参考资源链接:[解决pyinstaller打包报错不到pypiwin32pywin32-ctypes依赖](https://wenku.youkuaiyun.com/doc/645cd96a95996c03ac3f8c0c)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值