ModuleNotFoundError:没有名为“utils”的模块:如何更改导入查看的父目录

2024-06-26 01:36:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想我知道这里的问题是什么,但我不知道如何解决它。这是我在项目目录中的当前结构:

└── src
    ├── utils
       └── utils.py
    ├── comparator
       └── comparatorclass.py

在mycomparatorclass.py中,我有以下导入语句:

from utils.logging_service import LoggingService
from utils.utils import Utils

当我运行comparatorclass.py时,我得到了错误

Traceback (most recent call last):
  File "comparator_gui.py", line 11, in <module>
    import comparatorclass
  File "/Users/sidu/Desktop/aaababa/src/comparator/comparatorclass.py", line 16, in <module>
    from utils.logging_service import LoggingService
ModuleNotFoundError: No module named 'utils'

当然,我很确定发生的事情是,comparatorclass.py正在comparator目录中查找utils目录,而实际上它位于该目录之上的一层。当我有这样一个结构时,代码会起作用:

└── src
    ├── utils
       └── utils.py
    ├── comparatorclass.py

这是有意义的,因为现在它可以在同一个父目录src中找到utils目录。我的问题是如何让它与第一个场景一起工作?我需要一种方法来更改import语句查看的父目录


Tags: frompyimportsrc目录loggingserviceline
1条回答
网友
1楼 · 发布于 2024-06-26 01:36:07

我通过在导入实用程序之前添加以下行,解决了这个问题:

sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..'))  

from utilities.logging_service import LoggingService
from utilities.comparator_utils import Utils

我不知道这是否是正确的解决方案,但它确实为我解决了问题

相关问题 更多 >