无法从另一个目录导入文件,而另一个目录又从同一目录导入文件(int Python)

时间:2020-07-22 09:38:34

标签: python import module packaging

所以我的项目结构如下:

project/
    src/
        __init__.py
        utils.py
        model.py
    usage.py

我现在想将utils.py中的函数和model.py中的类导入到use.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打包知识。有人可以帮我吗? :)

2 个答案:

答案 0 :(得分:0)

对于文件/函数/变量的导入,请使用此sys方法

import sys
# insert at 1, 0 is for other usage
sys.path.insert(1, '/path/to/application/app/folder')

答案 1 :(得分:0)

好像python在utils中找不到您的module.py文件。然后,它继续在路径中搜索utils并找到它,因为您可能已经安装了一些库名utils。则此utils文件没有onehot_to_string函数。

尝试将from utils import onehot_to_string中的from .utils import onehot_to_string更改为model.py,以使用相对导入。