我无法从子文件夹中导入模块,该子文件夹从子子文件夹中导入模块。我正在使用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 ...
test.py中的import语句在当前工作目录中查找lib.aspect_extraction,该目录是从其调用位置(通常是script.py所在的目录,但并非必需)。最简单的解决方案(不是最好的解决方案):更改导入说明: