【发布时间】:2020-01-03 20:22:10
【问题描述】:
我正在学习一些 Panda3D 教程并创建了一些简单的程序。在不久的将来,我希望能够使用 PyInstaller 将我的 Panda3D 程序捆绑到一个独立的应用程序中。
但是,即使使用最简单的程序,我也遇到了一个奇怪的问题。
我使用了命令pyinstaller -F -c -w 01\ –\ blank\ window.py。
它正常工作,并在 dist 文件夹中创建一个 Unix 可执行文件和一个 macOS .app 文件。但是,它们都不起作用,它们只是立即打开和关闭。经过一番研究,我找到了问题的根源。
当我从终端运行任一可执行文件时,我收到此错误:
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(莫哈韦沙漠)
我的系统有 Python 2.7(macOS 自带)和 Python 3.7。我总是使用 Python 3.7。虽然我不确定我在 Panda3D 中使用的 Python 版本是什么,因为 SDK 带有自己的版本。
熊猫3D 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,但没有任何区别。
【问题讨论】:
-
也许这对你有帮助:github.com/pyinstaller/pyinstaller/wiki/… 专门看一下
If some module is missing (e.g. you get an ImportError):的部分 -
@raze92 感谢您提供的链接,我已阅读并尝试了一些方法。最后,我将 direct 和 panda3d 模块复制到
01 – blank window.py文件所在的同一目录中。这可以解决问题,PyInstaller 现在能够找到这些模块。 -
很高兴能帮上忙!
标签: python bash macos path python-3.7