我有一个Pyinstaller设置(自动规范生成和打包),目前正在使用ubuntu,windows和MacOS。 我正在努力使它在覆盆子pi(安装了raspbian)中工作,因为我必须按documentation
中的说明构建引导加载程序我正在捆绑的应用程序包含一个入口点,用于导入所需的模块(应用程序的其余部分和外部依赖项)并调用主循环。
基本结构是这样的:
+-- main.py
+-+ my_module
|--+ other.py
|--+ more_files.py
main.py导入外部依赖项和my_module 包是正确生成的,但是当我执行生成的二进制文件时,它会抛出一个错误:
Traceback (most recent call last):
File "<string>", line 43, in <module>
NameError: name 'my_module' is not defined
但是如果我去pyinstaller dist / my_app目录,我会看到它,如果我在那里运行python控制台,我可以这样做:
from my_module import other
other.main()
运行正常,所以似乎二进制文件缺少一些PYTHON_PATH信息或其他东西。
注意:
答案 0 :(得分:0)
我发现了问题,在main.py中进行了试验。将它们放在try之外或将它们添加为spec文件中的隐藏导入可以解决问题。我不知道的是我需要为rpi而不是其他平台做到这一点。