文件布局如下所示
.
├── modules/
│ ├── module1.py
│ └── module2.py
└── main.py
模块2.py:
print('hello world')
模块1.py:
import module2
运行module1.py
时,输出如下所示
"hello world"
主文件夹.py:
from modules import module1
运行main.py
时,输出如下所示:
Traceback (most recent call last):
File "C:\Users\demar\Desktop\A\main.py", line 1, in <module>
from modules import module1
File "C:\Users\demar\Desktop\A\modules\module1.py", line 1, in <module>
import module2
ModuleNotFoundError: No module named 'module2'
3条答案
按热度按时间nwsw7zdq1#
当你在
main.py
目录中时,Python会自动将这个目录添加到sys.path
(这是它查找模块和包的地方)。所以Python可以识别
modules
(名称空间)包和main.py
,这就是为什么运行from modules import module1
部分时没有出现任何错误,这也是因为它们的目录在sys.path
中错误来自于当它尝试执行
module1
时,它看到import module2
行。现在它无法识别module2
。如何修复?
1.您可以将
module2.py
的目录modules/
添加到sys.path
或通过PYTHONPATH
环境变量添加。1.您可以更改
module1.py
并将其导入为:x4shl7ld2#
module1.py的正确代码:
仅仅因为您main.py从父文件夹运行www.example.com
gpfsuwkq3#
我发现如果我只写
在单元1中
它从主模块和模块1工作