Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Don';无法理解此模块未找到错误的原因_Python_Python 3.x_Package_Python Import - Fatal编程技术网

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