PyInstaller NameError,没有找到打包的模块

时间:2014-01-16 12:40:07

标签: python-2.7 raspberry-pi pyinstaller raspbian

我有一个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信息或其他东西。

注意:

  • my_module import是main.py中的最后一个,似乎没有问题 导入从site-packages检索的模块
  • 如果我用--onefile,--onedir或none
  • 打包它,也会抛出相同的错误
  • 相同的配置脚本正在其余平台中生成工作包

1 个答案:

答案 0 :(得分:0)

我发现了问题,在main.py中进行了试验。将它们放在try之外或将它们添加为spec文件中的隐藏导入可以解决问题。我不知道的是我需要为rpi而不是其他平台做到这一点。