代码之家  ›  专栏  ›  技术社区  ›  Saffik

如何使用相对导入在pytest中导入python包

  •  0
  • Saffik  · 技术社区  · 6 年前
    my-proj
    ├── src
    │   ├── main.py
    └── test
    │   ├── my_tests.py
    

    我的python项目有上面的目录结构。我在my_test.py中有一些单元测试,当我运行它们时,我使用以下导入得到以下错误:

    import os, sys
    import json
    from ..src import main
    import unittest
    

    python我的测试.py

    抱歉,如果这是回答,但我尝试了一些事情,甚至包括在两个目录(src和test)中的uu2; main uu2;.py,但没有工作。你知道我该怎么做吗? 它是python(main.py)中的一个FLASK应用程序

    1 回复  |  直到 6 年前
        1
  •  1
  •   Artyom Vancyan    6 年前

    你也可以写在你的 my_tests.py

    import sys
    sys.path.append("../src/")
    import main
    
        2
  •  0
  •   AKX Bryan Oakley    6 年前

    __main__.py 对包没有影响,只有这样才能运行 python -m pkg . 你可能在想 __init__.py ,使目录成为包。

    pytest src/ here 就行了(你可能需要种一种植物 conftest.py 在里面 src/ 让Py.test将其识别为源根并相应地进行修复。)

    另一种方法是让你的 package properly installable ( setup.py , etc.) pip install -e . .