我经历了无数的答案,也尝试了其中的大部分,但仍然面临同样的问题我的结构 -- backend -- app -- __init__.py -- utils.py -- models.py -- pytest -- test_utils.py`现在我想将 utils 导入 test_utils 以便能够调用该函数并对其进行测试。我的init .py 不为空,我的 test_utils.py 看起来像这样import sys, os.pathsys.path.insert(0 ,(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) + '/app/'))from utils import test_functiondef test_test_function(): a = test_function(5) assert a == 5我检查了我的 sys 路径也指向正确的目录,但不断收到此错误,我在 Linux 中使用 Python 2.7ImportError while importing test module '/home/richie/Documents/Project/backend/pytest/test_utils.py'.Hint: make sure your test modules/packages have valid Python names.Traceback:../virenv/local/lib/python2.7/site-packages/six.py:709: in exec_ exec("""exec _code_ in _globs_, _locs_""") test_utils.py:3: in <module> from utils import test_function../app/utils.py:15: in <module> from models import Users, Accounts../app/models.py:2: in <module> from app import dbE ImportError: No module named app
2 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
解决方案是在 pytest/ 文件夹中创建一个 pytest.ini 文件。pytest.ini 的内容将是:--
[测试]
python_paths = . ../应用程序
繁星淼淼
TA贡献1775条经验 获得超11个赞
事实证明,必须为 app 和 utils 添加路径,然后它才能工作
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) sys.path.append((os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) + '/app/'))
添加回答
举报
0/150
提交
取消