ModuleNotFoundError:未命名模块…从子子目录导入

问题描述 投票:0回答:1

我无法从子文件夹中导入模块,该子文件夹从子子文件夹中导入模块。我正在使用python 3.6。

文件夹的结构如下:

src
├── script.py
└── prepare_data
          ├── __init__.py
          ├── test.py      
          └── lib
               ├── aspect_extraction.py
               └── __init__.py

并且在aspect_extraction.py中,我这样做:

def aspect_extraction():
    print("ok this worked")

test.py看起来像这样:

from lib.aspect_extraction import aspect_extraction
def test_func():
    aspect_extraction()

test_func()

script.py看起来像这样:

from prepare_data.test import test_func
test_func()

当我运行pipenv run python src/script.py时>

File "/src/prepare_data/test.py", line 1, in <module>
from lib.aspect_extraction import aspect_extraction
ModuleNotFoundError: No module named 'lib'

奇怪的是,当我运行pipenv run python src/prepare_data/test.py时,它有效。

ok this worked

我无法确定问题是什么...这与python版本有关吗?

我无法从子文件夹中导入模块,该子文件夹从子子文件夹中导入模块。我正在使用python 3.6。文件夹的结构如下:src├──script.py└──prepare_data ...

python import module subdirectory
1个回答
0
投票

test.py中的import语句在当前工作目录中查找lib.aspect_extraction,该目录是从其调用位置(通常是script.py所在的目录,但并非必需)。最简单的解决方案(不是最好的解决方案):更改导入说明:

© www.soinside.com 2019 - 2024. All rights reserved.