【发布时间】:2020-01-18 16:58:22
【问题描述】:
我正在构建一个不和谐的机器人,但在导入包含我要测试的功能的代码时遇到问题。
当我运行 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
【问题讨论】:
-
我在屏幕截图中没有看到那些
__init__.py文件。 -
@PatrickHaugh 抱歉,我已更新链接以显示
__init__.py文件。 -
您能否编辑您的问题以包含您的 PYTHONPATH 环境变量、您用于运行测试的命令以及您从哪个文件夹运行它?
-
@GabrielC 我已添加您要求的信息。我的 PATH 正在查找 python 2.7,但我的机器人一直在运行 3.7.4。虽然我需要保留 2.7,因为我的 twitch 聊天机器人脚本需要 2.7。
标签: python python-3.x pytest python-import discord.py