首页 > 解决方案 > ModuleNotFoundError: No module named 'Src' - 当我运行 Pytest

问题描述

我正在构建一个不和谐的机器人,但在导入带有我想要测试的功能的代码时遇到了麻烦。

当我运行 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(镜像源)

我不确定为什么它没有找到我的模块,所以我可以导入类和函数。

根据我的在线研究,我认为我的init .py 文件可能有问题。但是,作为 Python 新手,我并不完全理解这一点。我阅读了 Python 文档,其中解释了它创建了一个包,其中包含文件作为模块。这意味着我已将目录中的每个文件导入到init .py 文件中。但是,我仍然遇到这个问题。

初始化文件(在根目录上):

import Src

初始化文件(/Src/):

import Cogs
import Entities
import Models
import Queries
import Repositories
import AppConfig
import DatabaseConnection

初始化文件(/Src/Repositories):

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

标签: pythonpython-3.xpytestpython-importdiscord.py

解决方案


Python 找不到您的包,因为它不在 PYTHONPATH 中。

您可以将项目文件夹添加到 PYTHONPATH 或 .. 如果添加.,那么 Python 将始终在当前目录中查找包。

顺便说一句,在这个 Init 文件 (/Src/Repositories) 中,您正在导入没有完整路径的模块。

import Src.Repositories.GuildRepository
import Src.Repositories.MemberRepository

推荐阅读