Kvaser的CAN库已加载,但程序可执行文件输出“没有名为'can.interfaces.kvaser'的模块”错误

问题描述 投票:2回答:1

我做了一个工作应用程序,成功使用python-can模块在kvaser CAN总线上接收传入的消息。当我使用PyInstaller将此程序转换为可执行文件时,终端记录它“加载了kvaser的CAN库”。输出的.exe GUI正常运行,但程序突然不再像之前那样收到任何CAN消息。在终端中,我打印了它捕获的错误:

“无法为CAN接口'kvaser'导入模块can.interfaces.kvaser:没有名为'can.interfaces.kvaser'的模块。

请注意,在我用于创建可执行文件的.spec文件中,我在顶部添加了“import can.interfaces.kvaser”。我不确定我得到的错误是因为我没有正确使用pyinstaller,或者是因为我以某种方式错误地导入了CAN依赖项,但我怀疑它可能是由于后者。是否有不同的方法导入python-can kvaser模块,可以解决程序转换为可执行文件之前和之后的CAN功能之间的差异?

python exe pyinstaller can-bus
1个回答
0
投票

弄清楚了。事实证明,PyInstaller专门在您要执行的主文件的顶部安装依赖项。 PyInstaller无法检测到导入到主文件中的其他python文件中的依赖项。我在主文件中添加了我需要的所有导入调用,并且它有效。

© www.soinside.com 2019 - 2024. All rights reserved.