NameError:名称“转子”未定义

Posted

技术标签:

【中文标题】NameError:名称“转子”未定义【英文标题】:NameError: name 'rotor' is not defined 【发布时间】:2020-06-30 19:12:10 【问题描述】:

我尝试在 Spyder 下导入和运行自制模块。 main.py 程序

    import rot
    f=rotor(b_x,b_y,b_z,x,y,z)

rot.py 程序

    def rotor(bx,by,bz,x,y,z):
        import numpy as np
        ...

问题是:

文件“C:\Users\Professional.spyder-py3\my_pro\jgut\main.py”,第 93 行,在 f=转子(b_x,b_y,b_z,x,y,z)

NameError: 名称“转子”未定义

即使在启动任何导入模块的暴力启动后,问题也不会消失。 有没有办法同时启动所有导入的模块?或者也许有人遇到过这个问题?

附:今天在 Anaconda 重新安装后出现了问题,因为 IK-Multimedia 应用程序不兼容(我刚刚删除了它们)。我从一开始就用蛮力开始了所有的mudules。

【问题讨论】:

我编辑了这个问题,因为这与 Spyder 无关。 【参考方案1】:

1) 请不要在函数中导入模块!

2) rotor 未定义,因为它位于 rot 命名空间中。您可以通过rot.rotor(args) 拨打电话。如果你想按你的方式调用它,你必须像这样导入它:from rot import rotorfrom rot import *(从 rot 模块导入所有内容,这是一个不好的做法 - 你应该只导入你需要的东西)。

该错误与最后 2 段中写的任何内容无关。

【讨论】:

它有效,谢谢。但我不能完全理解出现的问题。如果我将 numpy 作为 np 导入,我可以访问所有 numpy 函数并且它运行良好。加载我的模块时出了什么问题? numpy 是不是以其他方式设计的? 如果您使用import numpy as np,numpy 命名空间将被引用为np,并且您调用所有带有np. 前缀的numpy 函数。如果您只写了import numpy,则必须调用每个带有numpy. 前缀的numpy 函数。

以上是关于NameError:名称“转子”未定义的主要内容,如果未能解决你的问题,请参考以下文章

NameError:名称'unicode'未定义[重复]

NameError:名称'python'未定义[关闭]

NameError:名称“”未定义[关闭]

Buildozer:NameError:未定义名称'functools'

NameError:未定义全局名称“reduce”

NameError:未定义名称“convertToBinaryData”