首页 > 解决方案 > Python导入问题只能运行应用程序或代码但不能同时运行

问题描述

因此,我一直在搜索该站点并对此表示怀疑。我的知识似乎将我限制在我可以运行的代码或我可以测试的代码上。寻找解决方案还没有让我更清楚地了解为什么会这样。

我有以下文件夹结构:

在此处输入图像描述

__init__是一个空文件。其余文件如下所示: ClassA.py:

class A:
    def hello(self):
        print('hello')

B类.py:

from ClassA import A

class B:
    def hello(self):
        print('hello')
        a = A()
        print(a.hello())

主要.py:

from ClassB import B

if __name__ == '__main__':
    b = B()
    b.hello()

test_app.py:

import pytest
import sys
import os

sys.path.append(os.path.realpath(os.path.dirname(__file__)+'/..'))
from src.ClassB import B

def test_app():
    assert 1 == 1

如果我从文件的根目录运行项目一切顺利。但是,如果我运行测试,它会告诉我:

ModuleNotFoundError: No module named 'ClassA'

from ClassA import AClassB.py. 它要我在那里添加一个点,使它成为from .ClassA import A. 但是,如果我添加点,我将无法再运行代码......

标签: pythonpython-3.x

解决方案


我认为通过添加测试__init__.py文件夹,您的问题将得到解决。


推荐阅读