我正试图用Pyinstaller从我的Python应用程序中创建一个可执行文件,所以我创建了一个虚拟环境,并安装了所有需要的包。
我还使用命令pip install python-snap7
安装了snap7包装器。
如果我从我的终端运行python文件,它工作得很好。但是,当我使用Pyinstaller创建可执行文件并尝试运行它时,会出现以下消息,并且应用程序无法启动:
Traceback (most recent call last):
File "myapp.py", line 772, in <module>
File "myapp.py", line 751, in main
File "snap7client.py", line 64, in __init__
File "snap7common.py", line 72, in load_library
File "snap7common.py", line 63, in __init__
RuntimeError: can't find snap7 library. If installed, try running ldconfig
[22236] Failed to execute script 'myapp' due to unhandled exception!
也许我没有安装完整的snap7
库(如中所写https://python-snap7.readthedocs.io/en/0.5/installation.html#snap7),但我不知道如何在Python虚拟环境中安装它
我已经找到了解决方法。当我运行.exe文件时,它会在Pyinstaller创建的临时文件夹(_MEI(和.exe文件的本地路径中搜索snap7.dll和snap7.lib。因此,我只需将snap7.dll和snap7.lib文件添加到运行.exe文件的本地路径中,它就可以工作了。
可以从下载库的最新版本来找到这些文件https://sourceforge.net/projects/snap7/files/