代码之家  ›  专栏  ›  技术社区  ›  NBS

python:NameError:导入整个包时未定义名称“first”

  •  0
  • NBS  · 技术社区  · 2 年前

    当我导入整个包裹时,它会给我一个 NameError 。但是,当我导入单个模块并运行相同的代码时,它会正常执行。

    我的结构是:

    • my_package/目录
      • __init__.py
      • first.py
      • second.py
      • main.py

    当我按如下方式运行main.py时,它会给我一个 命名错误 :

    import my_package
    first.say_1st()
    second.say_2nd()
    
    "C:\\Program Files\\Python312\\python.exe" "D:\\E Drive\\Training\\pythonProject1\\Sample scripts\\Package example\\main.py"
    Traceback (most recent call last):
    File "D:\\E Drive\\Training\\pythonProject1\\Sample scripts\\Package example\\main.py", line 4, in \<module\>
    first.say_1st()
    ^^^^^
    NameError: name 'first' is not defined. Did you mean: 'list'?
    
    Process finished with exit code 1
    

    但当我奔跑时 main.py 如下所示,它为我提供了预期的输出。

    from my_package import first
    first.say_1st()
    
    from my_package import second
    second.say_2nd()
    

    我做错什么了吗?

    1 回复  |  直到 2 年前
        1
  •  -1
  •   Spaghetti    2 年前

    要安装所有软件包,请使用 from my_package import * 而不是仅仅 import my_package 。我以前见过这个问题,我只能说Python有点时髦。

    希望这能解决你的问题。