【问题标题】:Pyinstaller not working with Panda3D – 'direct' module not foundPyinstaller 无法与 Panda3D 一起使用 - 找不到“直接”模块
【发布时间】: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


【解决方案1】:

通常 pyinstaller 只找到 pip 或 anaconda 安装包。将panda3d模块复制到01 – blank window.py方向解决了问题,comment from AkThao中描述的如何。

【讨论】:

    猜你喜欢
    • 2021-01-03
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2021-12-05
    • 1970-01-01
    • 2020-11-26
    相关资源
    最近更新 更多