无法从从同一目录导入文件的另一个目录导入文件 (int Python)
Can't import file from another directory which imports a file from the same directory (int Python)
所以我的项目结构如下:
project/
src/
__init__.py
utils.py
model.py
usage.py
我现在想将 utils.py 中的函数和 model.py 中的 class 中的函数导入到我的 usage.py 中。但是 model.py 本身从 utils.py.
导入函数
所以我正在做以下事情:
# usage.py
from src.model import Model
from src.utils import onehot_to_string
但我得到的错误是无法将函数从 utils.py 导入到 model.py:
File "usage.py", line 11, in <module>
from src.model import *
File "/project/src/model.py", line 7, in <module>
from utils import onehot_to_string
ImportError: cannot import name 'onehot_to_string' from 'utils' (/lib/python3.7/site-packages/utils/__init__.py)
我想我缺乏一些基本的Python包装知识。有人可以帮我吗? :)
对于 file/function/variables 导入使用此 sys 方法
import sys
# insert at 1, 0 is for other usage
sys.path.insert(1, '/path/to/application/app/folder')
看起来 python 在 model.py
中找不到您的 utils
文件。然后它继续在路径中搜索 utils
并找到它,因为例如有人安装了一些名为 utils
的库。然后,错误发生是因为之前安装的 utils
库没有 onehot_to_string
功能。
尝试将 from utils import onehot_to_string
中的 from .utils import onehot_to_string
更改为 model.py
以使用相对导入。
所以我的项目结构如下:
project/
src/
__init__.py
utils.py
model.py
usage.py
我现在想将 utils.py 中的函数和 model.py 中的 class 中的函数导入到我的 usage.py 中。但是 model.py 本身从 utils.py.
导入函数所以我正在做以下事情:
# usage.py
from src.model import Model
from src.utils import onehot_to_string
但我得到的错误是无法将函数从 utils.py 导入到 model.py:
File "usage.py", line 11, in <module>
from src.model import *
File "/project/src/model.py", line 7, in <module>
from utils import onehot_to_string
ImportError: cannot import name 'onehot_to_string' from 'utils' (/lib/python3.7/site-packages/utils/__init__.py)
我想我缺乏一些基本的Python包装知识。有人可以帮我吗? :)
对于 file/function/variables 导入使用此 sys 方法
import sys
# insert at 1, 0 is for other usage
sys.path.insert(1, '/path/to/application/app/folder')
看起来 python 在 model.py
中找不到您的 utils
文件。然后它继续在路径中搜索 utils
并找到它,因为例如有人安装了一些名为 utils
的库。然后,错误发生是因为之前安装的 utils
库没有 onehot_to_string
功能。
尝试将 from utils import onehot_to_string
中的 from .utils import onehot_to_string
更改为 model.py
以使用相对导入。