我需要帮助将模块从同级文件夹导入测试



我得到一个导入错误"无法导入模块";当我尝试导入模块时

文件结构

src
modules
__init__.py
authenticate_developer
twttier_importer
notebooks
main.ipynb
unit_tests
test_authenticate_developer

在test_authenticate_developer 中

import requests
from nose.tools import assert_true
import os
import sys
sys.path.append(os.path.abspath('../modules'))
import settings
import twitter_importer #returns import error
import authenticate_developer #returns import error

然而,当我在笔记本上使用相同的语法时,它是成功的。

import sys
import os
sys.path.append(os.path.abspath('../modules'))
sys.path.append(os.path.abspath('../'))
import twitter_importer
import authenticate_developer
import settings

我已经查看了现有的答案,并尝试了它们,即从根文件夹中删除init.py,并将init.my删除或添加到测试文件夹中。似乎没有一个对我有用。

我设法找人帮我解决了这些问题,我们就是这样解决的。

src
modules
__init__.py
authenticate_developer
twttier_importer
notebooks
main.ipynb
unit_tests
__init__.py
test_authenticate_developer

在test_authenticate_developer 中

import os,sys,inspect
sys.path.append(os.path.abspath('../modules'))
#This is to access the parent folder in order to import config
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0,parentdir)
import config
from modules.authenticate_developer import Authenticate

我无法解释为什么我必须在测试文件中使用不同的方法,但这是我围绕所做的工作