我只是在python上乞讨panda3d,直到showbase.py模块在panda3d文件夹(它在站点包中)遇到了问题。( /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谢谢你的帮助!
发布于 2017-12-26 00:09:28
导入ShowBase类的正确方法是从direct.showbase包中的ShowBase模块导入它:
from direct.showbase.ShowBase import ShowBase注意,模块名为ShowBase,其中的类也被命名为ShowBase,因此出现了复制。一个常见的错误是尝试导入模块而不是类。
从您的代码中可以看出,您已经将direct源代码树复制到站点包中的panda3d包中。熊猫不是这样被使用的。direct树应该是一个单独的包,不应该有一个中间的src目录。
另外,您在Showbase.__init__中有一个大写错误,应该是ShowBase.__init__。
发布于 2021-11-08 17:09:04
因此,您需要使用超级函数并从showBase类继承
from direct.showbase.ShowBase import ShowBase
class Window(ShowBase):
def __init__(self):
super().__init__()
app = Window()
app.run()试试看
https://stackoverflow.com/questions/47867954
复制相似问题