Python 如何将应用程序文件导入不同目录下的测试文件

Python 如何将应用程序文件导入不同目录下的测试文件,python,python-3.x,flask,pytest,Python,Python 3.x,Flask,Pytest,如果我做错了,我深表歉意,但我对python还很陌生,不能很好地理解问题所在!我有一个简单的Flask应用程序,我正在尝试使用pytest为其编写测试。文件结构如下所示: │── app.py |── tests │ ├── tests_app.py 我最初将app.py和tests_app.py放在同一个级别,测试通过后一切正常,但现在我将测试放在了它们自己的文件夹中,我无法再导入应用程序而不会出错 我在app.py中尝试了以下测试: from app import app #this

如果我做错了,我深表歉意,但我对python还很陌生,不能很好地理解问题所在!我有一个简单的Flask应用程序,我正在尝试使用pytest为其编写测试。文件结构如下所示:

│── app.py
|── tests
│   ├── tests_app.py
我最初将app.py和tests_app.py放在同一个级别,测试通过后一切正常,但现在我将测试放在了它们自己的文件夹中,我无法再导入应用程序而不会出错

我在app.py中尝试了以下测试:

from app import app #this is what worked fine when app and tests were in the same folder
from ..app import app
from .. import app
linting错误是“尝试在顶级包之外进行相对导入”,当我运行pytest时,它会显示“ImportError:尝试在没有已知父包的情况下进行相对导入”

非常感谢


p、 我使用的是Python 3.8.5

您需要在桌面上安装
应用程序
。快速修复方法是将
app.py
的路径添加到
PYTHONPATH
环境变量:

export PYTHONPATH=/path/to/dir  # where app.py is
如果
app.py
位于python路径上,则
import-app
将起作用(排除任何其他导入问题,如循环导入)


一种有效且可复制的方法是安装应用程序。您可以在
develope
模式下执行此操作,这意味着代码从其当前目录运行。这是开发Python应用程序的一个低调而重要的部分,但要做到这一点,您需要编写代码。

可能会有所帮助。您好,非常感谢您回复我。我的应用程序仍然没有完成,因为我正在编写测试,打包是否是你在应用程序完成后要做的事情?此外,我还尝试将路径添加到PYTHONPATH的dir中,但我仍然收到相同的错误。。。