首页 > 解决方案 > Python:即使它存在于目录中,也找不到模块

问题描述

考虑我有以下项目结构:

+PROJECT
|  +models
|  |  =__init__.py
|  |  =client.py
|  |  =config.py
|
|  +tests
|  | =__init__.py
|  | =example.py
|  | =example_two.py
|
|  README.md
|  requirements.txt

当我尝试将一个类从客户端和一个变量从配置导入到 example.py 中时,如下所示:

from models.config import var 
from models.client import Class

我收到两个导入语句的ModuleNotFound 错误。我知道这个问题之前已经被问过很多次了,但是这些解决方案并不能解决我的问题。我尝试将客户端和配置放在与测试文件夹相同的级别。但是,我收到了同样的问题。如果有人可以帮助我解决这个问题,那就太好了。

标签: pythonpython-3.xclasspython-importdiffbot

解决方案


我想到了三种可能性:

  • 该模块仅适用于某些 python 版本(例如 3.5 但不是 3.6)。
  • 您的模块当前所在的路径不会出现在 sys.path 中。
  • 您要使用的类必须在导入模块时指定,因为它没有在模块本身的 __init__.py 中指定。

据我所知,只有第一个选项可能会导致您的问题。
不过,我会快速检查一下

import sys
sys.path

如果确实缺少正确的路径..

sys.path.append('PathToModule')

推荐阅读