我正在研究一些Panda3D教程,并创建了一些简单的程序。在不久的将来,我希望能够使用PyInstaller将我的Panda3D程序捆绑到一个独立的应用程序中。
但是,即使使用最简单的程序,我也遇到了一个奇怪的问题。
我已经使用了命令pyinstaller -F -c -w 01\ –\ blank\ window.py
。
它可以正常工作,并在dist
文件夹中创建Unix可执行文件和macOS .app文件。但是,它们都不起作用,它们只是立即打开和关闭。经过研究,我找到了问题的根源。
当我从Terminal运行任何可执行文件时,都会出现此错误:
Traceback (most recent call last):
File "01 – blank window.py", line 1, in <module>
from direct.showbase.ShowBase import ShowBase
ModuleNotFoundError: No module named 'direct'
[29403] Failed to execute script 01 – blank window
我不知道为什么会发生此错误,因为使用python3 01\ –\ blank\ window.py
或直接从VS Code运行时,我的程序运行良好。
如何解决以上错误?
规格:
macOS 10.14.6(Mojave)
我的系统具有Python 2.7(macOS附带)和Python 3.7。我一直使用Python 3.7。尽管我不确定Panda3D使用的是哪个版本的Python,因为SDK附带了自己的版本。
Panda3D 1.10.4.1
direct
模块位于/Developer/Panda3D/direct
,而我的PATH
是/Library/Frameworks/Python.framework/Versions/3.7/bin://anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/akaash_home/Library/Python/3.7/bin:/Developer/Panda3D/bin
此外,我想知道是否在外部硬盘驱动器上运行这些文件并使用PyInstaller将应用程序放在同一驱动器上是否有区别。
编辑:
我还尝试添加选项--hidden-import=direct
,但这没什么区别。
答案 0 :(得分:1)
通常pyinstaller仅找到pip或anaconda安装的软件包。将panda3d模块复制到01 – blank window.py
方向可以解决问题,如何在comment from AkThao中进行描述。