我正在构建一个不和谐的bot,并且无法导入要测试的功能的代码。
当我运行MemberRepositoryTest.py文件时,出现以下错误:
ModuleNotFoundError: No module named 'Src'
MemberRepositoryTest.py(/ Tests / Src / Repositories /)
import pytest
from Src.Repositories import MemberRepository # <--- This line is failing.
# TODO: Implement tests
此链接上的我的文件夹结构是这个-https://imgur.com/a/Rh65iJY
测试结构为:
Tests / Src / Repositories / MemberRepositoryTest.py(镜像Src)
我不确定为什么找不到我的模块,所以我可以导入类和函数。
根据我的在线研究,我认为 init .py文件可能存在问题。但是,对于Python来说,我还不是很了解。我阅读了Python文档,该文档解释了它创建了一个包,其中的文件作为模块。这意味着我已经将目录中的每个文件导入到 init .py文件中。但是,我仍然遇到这个问题。
初始化文件(在根目录上):
import Src
初始化文件(/ Src /):
import Cogs
import Entities
import Models
import Queries
import Repositories
import AppConfig
import DatabaseConnection
初始化文件(/ Src /存储库):
import GuildRepository
import MemberRepository
我从项目的根目录(documents / rush_bot)运行它。我运行以执行测试文件的命令为pytest Tests/Src/Repositories/MemberRepository.py
我的Python路径环境是:
C:\WINDOWS\SYSTEM32\python27.zip
C:\Python27\DLLs
C:\Python27\lib
C:\Python27\lib\plat-win
C:\Python27\lib\lib-tk
C:\Python27
C:\Python27\lib\site-packages
答案 0 :(得分:1)
Python无法找到您的软件包,因为它不在PYTHONPATH中。
您可以将项目文件夹添加到PYTHONPATH或.
。如果您添加.
,则Python将始终在当前目录中查找包。
顺便说一句,在此Init文件(/ Src / Repositories)中,您将导入没有完整路径的模块。
import Src.Repositories.GuildRepository
import Src.Repositories.MemberRepository