Python Don';无法理解此模块未找到错误的原因
我的文件结构如下:Python Don';无法理解此模块未找到错误的原因,python,python-3.x,package,python-import,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 subp
└── 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
这就产生了错误
回溯(最近一次呼叫最后一次):
文件“C:\…\project\main.py”,第1行,在
从package1导入模块1
文件“C:\…\project\package1\module1.py”,第1行,在
从子包导入模块2
ModuleNotFoundError:没有名为“子包”的模块
我真的不明白这里发生了什么,我尝试用os.chdir()将当前工作目录更改为module1中的package2,但没有效果。研究该问题后,我发现唯一可能与我的问题有关的是绝对导入与相对导入,但更改导入语句不会影响错误。在
module1.py
文件中,您需要为导入的文件提供完整路径(绝对路径)。因此,如果要从main.py
文件运行代码,需要将module1.py
中的导入更改为:
from package2.subpackage import module2
或
您的文件结构中没有
package1
。谢谢,这是一个输入错误,我在实际项目中有一个package1。谢谢,我遇到了这个解决方案,但认为它失败了,因为它在直接运行'module2.py'时不起作用。
import package2.subpackage.module2