转换为exe后出现Netdisco FileNotFoundError

时间:2018-07-26 17:12:57

标签: python python-3.x pyinstaller file-not-found

使用python 3.7脚本,该脚本使用netdisco(https://github.com/home-assistant/netdisco)扫描本地网络中的IOT设备。通过python运行程序时一切正常。但是,在将脚本转换为Windows 10上的可执行文件后,当尝试从User / appData / temp /文件夹中读取文件时,程序将失败。 netdisco脚本在netdisco项目中的Discovery.py(https://github.com/home-assistant/netdisco/blob/master/netdisco/discovery.py)的第52行上引发FileNotFoundError。 netdisco尝试读取的文件不存在,所以我认为其他东西无法创建该文件,但是我没有在netdisco中找到对任何文件创建的引用。

其他信息:
以管理员和普通用户身份运行.exe
Pyinstaller可以毫无问题地从原始脚本构建.exe
从头到尾都是在Windows 10上。
调用NetworkDiscovery.scan()时发生错误

1 个答案:

答案 0 :(得分:0)

Netdisco在未标记为依赖项的.py文件中定义了可以扫描的设备,因此pyinstaller不会在转换期间添加程序包。我发现的解决方案是编辑pyinstaller用于添加“(''path / to / netdisco / discoverables / *','netdisco / discoverables')”的.spec文件