繁体   English   中英

Python:即使目录中存在模块,也未找到

[英]Python: No module found even though it exists in directory

考虑我有以下项目结构:

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

当我尝试从客户端导入一个类并将一个变量从config导入example.py时,如下所示:

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

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

您将需要进行相对导入( PEP-328 ),但是根据本指南 ,您只能向上启动脚本的起始位置,在这种情况下为您的tests目录。

所以,你要么必须在添加model目录的路径,或你的项目的源文件夹添加到您的站点包一个.pth文件,如在这里

我想到了三种可能性:

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

据我所知,只有第一种选择可能会引起您的问题。
不过,我会与

import sys
sys.path

并确实缺少正确的路径。

sys.path.append('PathToModule')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM