python - 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 A
在ClassB.py
. 它要我在那里添加一个点,使它成为from .ClassA import A
. 但是,如果我添加点,我将无法再运行代码......
解决方案
我认为通过添加测试__init__.py
文件夹,您的问题将得到解决。
推荐阅读
- javascript - Vuejs onMounted vs watch ref
- firebase-realtime-database - 在 firebase 中,如何从 ESP 8266 创建用户并在用户对象中添加数据?
- rest - 如何格式化 PowerQuery OData.Feed 中的 headers 参数?
- java - 如何轻松找到哪些端点调用了方法?
- laravel - 使用 GET 方法进行请求验证在 Laravel 8 中不起作用 - Recaptcha
- php - 加载页面时未定义的索引
- javascript - 如果浏览器语言不是俄语,则重定向到英文版本
- email - 如何处理已读回执、送达回执和退回(JavaMail)
- uiimage - UIGraphicsPopContext():MacOS NSImage 等效于 Core Graphics?
- amazon-web-services - 使用具有严格白名单的公有子网与对 AWS 云资源使用私有子网的缺点