1
yunyuyuan 2021-06-07 16:30:13 +08:00
我测试没报错。
而且 from dir.subdir.b import funB 可以改成 from .subdir.b import funB 。 |
2
Jwyt 2021-06-07 16:52:03 +08:00
from a import funA 是对的
|
3
pyMoRan 2021-06-07 16:54:38 +08:00
在 subdir 建个__init__.py 文件
|
4
renmu123 2021-06-07 16:55:41 +08:00 via Android
相对导入和绝对导入,你好像忘记添加__init__了
|
5
Jwyt 2021-06-07 17:01:37 +08:00
|
6
rationa1cuzz 2021-06-07 17:46:25 +08:00
1 、解释器可以右键文件 mark directory as sources root
2 、大部分 import 异常可以从两个方向看一个是工作路径 import os print os.getcwd() 另一个是__init__.py 的问题 |
7
NickLuan 2021-06-08 16:52:23 +08:00
你说的没太看懂,测试了下你发的代码,报错如下:
Traceback (most recent call last): File "dir/main.py", line 1, in <module> from dir.subdir.b import funB ModuleNotFoundError: No module named 'dir' 这么说吧,文件导入就是告诉系统从哪里找这个文件,Python 中被执行文件也叫入口文件,你执行 main.py ,那这个文件就是入口文件,Python 会自动把这个文件所在文件夹的路径添加都文件搜索路径中,可以打印 sys.path 看一看 那么 from dir.subdir.b import funB 就等同于从 dir 里找名字为 dir 的文件或文件夹,所以就报错 No module named 'dir' |