当前位置: 首页 > 面试题库 >

Python-ImportError:无法导入名称X

訾安邦
2023-03-14
问题内容

我有四个不同的文件,分别命名为:main,vector,entityphysics。我不会发布所有代码,而只会发布导入代码,因为我认为这就是错误所在。(如果需要,我可以发布更多信息)

主要:

import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement

实体:

from vector import Vect
from physics import Physics
class Ent:
    #holds vector information and id
def tick(self, dt):
    #this is where physics changes the velocity and position vectors

向量:

from math import *
class Vect:
    #holds i, j, k, and does vector math

物理:

from entity import Ent
class Physics:
    #physics class gets an entity and does physics calculations on it.

然后,我从main.py运行,出现以下错误:

Traceback (most recent call last):
File "main.py", line 2, in <module>
    from entity import Ent
File ".../entity.py", line 5, in <module>
    from physics import Physics
File ".../physics.py", line 2, in <module>
    from entity import Ent
ImportError: cannot import name Ent

我对Python非常陌生,但是已经使用C ++了很长时间。我猜测该错误是由于两次导入实体引起的,一次是在主体中,一次是在物理中,但是我不知道解决方法。有人可以帮忙吗?


问题答案:

你有循环依赖进口。physics.py从定义entity类之前导入,Entphysics尝试导入entity已初始化的类。physicsentity模块中删除对的依赖。



 类似资料:
  • 问题内容: 我有两个文件, app.py mod_login.py 而python返回此错误: 如果删除from app import app,代码将起作用,但是如何访问? 问题答案: 问题是你有一个循环导入:在app.py中 在mod_login.py中 这在Python中是不允许的。有关更多信息,请参见Python中的循环导入依赖项。简而言之,解决方案是 要么将所有内容收集到一个大文件中 使用

  • 问题内容: 我正在尝试运行以下简单代码 但我收到以下错误 我正在Windows 10下使用python 2.7。 我已经安装了,但是似乎无法解决问题 任何帮助表示赞赏。 问题答案: 如果查看引起错误的行,则会看到以下内容: 该行注释将依赖项声明为(对于 Intel Math Kernel Library )。这意味着您已经安装了by ,但是the是由预编译的存档安装的,其期望值为。 通过从此处的w

  • 问题内容: 我没有找到解决方案,有人可以帮忙吗? 问题答案: 1. 尝试更新 2. 尝试重新安装 以下代码段将打印到控制台什么?

  • 问题内容: 我正在尝试使用ttk模块为tkinter中的GUI应用程序为Windows创建可执行文件。我使用cx_freeze制作了一个exe,但是当我在控制台中运行该应用程序时,出现以下错误: 这是我的代码中的第14和15行: 问题答案: 看起来cx_freeze没有意识到它应该包含该模块,该模块有条件地由导入。您可以告诉它在命令行参数或关键字参数to中明确包含该模块。

  • 问题内容: 我无法使ffprobe软件包在Python 3.6中工作。我使用pip安装了它,但是当我输入时说 init.py文件仅包含一行。 包括“ C:\ Python \ Python36 \ lib \ site-packages”,这是ffprobe目录所在的位置。 安装和导入软件包在Python 2.7中都可以正常工作。但是我想在Python 3中使用它,即使这意味着对.py文件进行手动

  • 问题内容: 我将Jupyter笔记本从旧版本更新为最新的5.3.1。但是,当我尝试从anaconda启动笔记本电脑时,它引发了导入错误:我尝试删除并安装Jupyter软件包,但问题仍然存在。 问题答案: 您需要从终端手动更新jupyter_core和jupyter_client: