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

问题描述 投票:0回答:1

当我导入整个包时,它给了我一个

NameError
。但是当我导入各个模块并运行相同的代码时,它可以正确执行。

我的结构是:

  • 我的包/目录
    • __init__.py
    • 首先.py
    • 第二.py
    • 主.py

当我如下运行 main.py 时,它会给我一个

NameError
:

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()

我做错了什么吗?

python package nameerror
1个回答
0
投票

要安装所有软件包,请使用

from my_package import *
而不是仅使用
import my_package
。我以前见过这个问题,我只能说 Python 有点时髦。

希望这能解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.