【问题标题】:Panda3d Showbase class errorPanda3d Showbase 类错误
【发布时间】:2017-12-18 11:53:42
【问题描述】:

我只是在 python 上开始使用 panda3d,直到遇到 panda3d 文件夹中的 showbase.py 模块的问题(位于站点包中。/home/pi/.local/lib/python3.5/site-packages)我在树莓派 3B 上运行。 Showbase.py 的位置是/home/pi/.local/lib/python3.5/site-packages/panda3d/direct/src/showbase)

代码:

from panda3d.direct.src.showbase import *

class Window(ShowBase):

    def __init__(self):

        Showbase.__init__(self)

game = Window()
game.run()

我不打算展示 Showbase.py,因为它有 3025 行长:|

错误:

Traceback (most recent call last):
  File "/home/pi/Desktop/Pandas3D/window.py", line 3, in <module>
    class Window(ShowBase):
NameError: name 'ShowBase' is not defined

感谢您的帮助!

【问题讨论】:

    标签: python 3d panda3d


    【解决方案1】:

    导入 ShowBase 类的正确方法是从 direct.showbase 包内的 ShowBase 模块中导入:

    from direct.showbase.ShowBase import ShowBase
    

    请注意,模块被命名为ShowBase,其中的类也被命名为ShowBase,因此是重复的。一个常见的错误是尝试导入模块而不是类。

    从您的代码看来,您已将direct 源代码树复制到站点包内的​​panda3d 包中。这不是 Panda 的用途。 direct 树应该是一个单独的包,并且不应有介入的 src 目录。

    另外,Showbase.__init__ 中的大写错误应该是 ShowBase.__init__

    【讨论】:

    • 我仍然收到错误:回溯(最近一次调用最后一次):文件“/home/pi/Desktop/Pandas3D/ShowbaseTest.py”,第 1 行,来自 direct.showbase 的 。 Showbase import ShowBase ImportError: No module named 'direct
    • 您能详细说明一下您是如何将 Panda3D 安装到您的机器上的吗?
    • 我在树莓派上,我使用 pip3 install panda3d 安装了它。但是当我再次尝试时,它给了我一个错误:找不到满足panda3d要求的版本(来自版本:)没有为panda3d找到匹配的分布
    • 无法在树莓派上通过pip 安装Panda3D。
    • Kk,那我该怎么做呢?
    【解决方案2】:

    所以你需要使用一个超级函数并从showBase类继承

    from direct.showbase.ShowBase import ShowBase
    
    class Window(ShowBase):
        def __init__(self):
            super().__init__()
    
    app = Window()
    app.run()
    

    试试看

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 2013-01-25
      • 2022-08-02
      • 1970-01-01
      相关资源
      最近更新 更多