为了账号安全,请及时绑定邮箱和手机立即绑定

从python中的不同目录导入错误(Err - No module named app)

从python中的不同目录导入错误(Err - No module named app)

梵蒂冈之花 2021-06-07 12:02:08
我经历了无数的答案,也尝试了其中的大部分,但仍然面临同样的问题我的结构 -- 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 = . ../应用程序


查看完整回答
反对 回复 2021-06-09
?
繁星淼淼

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/'))



查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 345 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信