不了解此ModuleNotFoundError

时间:2019-01-12 12:00:28

标签: python python-3.x package python-import

我的文件结构如下:

└── project    
    ├── __init__.py
    ├── main.py
    └── package1
        ├── __init__.py
        ├── module1 
        └── subpackage
            ├── __init__.py
            └── module2.py

module2包含一个名为A的函数,而模块1则使用以下代码导入module2:

from subpackage import module2

这在直接运行module1时可以正常工作,但是当我尝试从main.py导入module1时,出现错误。 main.py中import语句的代码为

from package1 import module1

这给出了错误

  Traceback (most recent call last):
  File "C:\...\project\main.py", line 1, in <module>
    from package1 import module1
  File "C:\...\project\package1\module1.py", line 1, in <module>
    from subpackage import module2
ModuleNotFoundError: No module named 'subpackage'

我真的不明白这里发生了什么,我尝试将os.chdir()的当前工作目录更改为module1中的package2,但这没有任何效果。研究问题后,我唯一发现的可能与问题有关的是绝对导入与相对导入,但是更改导入语句并不会影响该错误。

1 个答案:

答案 0 :(得分:1)

在您的module1.py文件中,您需要提供导入文件的完整路径(绝对路径)。因此,如果要从main.py文件运行代码,则需要将module1.py中的导入更改为:

from package2.subpackage import module2

import package2.subpackage.module2