我得到一个导入错误"无法导入模块";当我尝试导入模块时
文件结构
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
我无法解释为什么我必须在测试文件中使用不同的方法,但这是我围绕所做的工作