Ошибка класса Panda3d Showbase

Я только начинаю работать с panda3d на python, пока не наткнулся на проблему с модулем showbase.py в папке panda3d (который находится в site-packages. /home/pi/.local/lib/python3.5/site-packages). Я работаю на Raspberry Pi 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

Спасибо за любую помощь!


person Guydangerous99    schedule 18.12.2017    source источник


Ответы (1)


Правильный способ импорта класса ShowBase — импортировать его из модуля ShowBase внутри пакета direct.showbase:

from direct.showbase.ShowBase import ShowBase

Обратите внимание, что модуль называется ShowBase, а класс внутри него также называется ShowBase, отсюда и дублирование. Распространенной ошибкой является попытка импортировать модуль вместо класса.

Судя по вашему коду, вы скопировали исходное дерево direct в пакет panda3d внутри пакетов сайтов. Это не то, как Panda предназначена для использования. Дерево direct должно быть отдельным пакетом и не должно иметь промежуточного каталога src.

Кроме того, у вас есть ошибка капитализации в Showbase.__init__, которая должна быть ShowBase.__init__.

person rdb    schedule 26.12.2017
comment
Я все еще получаю сообщение об ошибке: Traceback (последний последний вызов): Файл /home/pi/Desktop/Pandas3D/ShowbaseTest.py, строка 1, в ‹module› из direct.showbase.Showbase import ShowBase ImportError: No module named 'direct - person Guydangerous99; 27.12.2017
comment
Не могли бы вы подробно рассказать, как вы установили Panda3D на свой компьютер, шаг за шагом? - person rdb; 28.12.2017
comment
Я на raspberry pi и установил его с помощью pip3 install panda3d. Но когда я пытаюсь сделать это снова, это выдает ошибку: Не удалось найти версию, удовлетворяющую требованию panda3d (из версий:) Для panda3d не найдено подходящего дистрибутива. - person Guydangerous99; 09.01.2018
comment
Невозможно установить Panda3D через pip на Raspberry Pi. - person rdb; 10.01.2018
comment
Кк, как мне это сделать тогда? - person Guydangerous99; 29.01.2018
comment
Вам нужно будет скомпилировать его из исходного кода. В настоящий момент мы не предоставляем бинарные сборки для Raspberry Pi. - person rdb; 30.01.2018