Python 从同级目录导入文件
我需要为我的Flask应用程序运行单元测试。在我的测试配置文件中,我需要从同级目录导入flaskPython 从同级目录导入文件,python,unit-testing,import,python-import,flask-testing,Python,Unit Testing,Import,Python Import,Flask Testing,我需要为我的Flask应用程序运行单元测试。在我的测试配置文件中,我需要从同级目录导入flaskcreate_app函数来初始化测试应用程序。如果没有导入错误,我就无法找到它 我试着把\uuuu init\uuuu.py放在几乎每个文件夹上,但没有成功。我已经了解到,不建议编辑sys路径,因此我希望有一个没有此选项的解决方案 文件夹结构 根目录/ ----__初始值 ----服务器/ --------__初始值 --------database.py ----测验/ --------__初始值
create_app
函数来初始化测试应用程序。如果没有导入错误,我就无法找到它
我试着把\uuuu init\uuuu.py
放在几乎每个文件夹上,但没有成功。我已经了解到,不建议编辑sys路径,因此我希望有一个没有此选项的解决方案
文件夹结构
根目录/
----__初始值
----服务器/
--------__初始值
--------database.py
----测验/
--------__初始值
--------config.py
config.py
from server import create_app
from server.database import db
引发此错误:
回溯(最近一次呼叫最后一次):
文件“tests/config.py”,第2行,在
从服务器导入创建应用程序
ModuleNotFoundError:没有名为“服务器”的模块
以及:
引发此错误:
回溯(最近一次呼叫最后一次):
文件“tests/config.py”,第2行,在
从..服务器导入创建应用程序
ValueError:尝试在顶级包之外进行相对导入
有人能解释一下为什么它不工作,以及python
import
s通常是如何工作的吗?我一直没能弄清楚它们。要使导入语句正常工作,名称必须在sys.path
中解析。创建正确的包结构并安装包通常是使名称在sys.path
中可见的最佳方法
root/\uuuuu init\uuuuuuy.py
和tests/\uuuuuu init\uuuuuu.py
来自..服务器导入创建应用程序#否
从服务器导入创建应用程序#是
root/setup.py
,内容如中所述root/.venv/
subdir中,但在何处并不重要)setup.py
的目录,安装软件包:pip安装--可编辑。
要使导入语句正常工作,必须以某种方式在sys.path
中解析名称。创建正确的包结构并安装包通常是使名称在sys.path
中可见的最佳方法
root/\uuuuu init\uuuuuuy.py
和tests/\uuuuuu init\uuuuuu.py
来自..服务器导入创建应用程序#否
从服务器导入创建应用程序#是
root/setup.py
,内容如中所述root/.venv/
subdir中,但在何处并不重要)setup.py
的目录,安装软件包:pip安装--可编辑。
谢谢,但为什么需要安装它?为什么不能像在JS中那样通过导入语句正常导入包呢?因为Python导入系统不是这样工作的。这很公平。谢谢我会尽快接受你的回答。谢谢,但为什么要安装它呢?为什么不能像在JS中那样通过导入语句正常导入包呢?因为Python导入系统不是这样工作的。这很公平。谢谢我会尽快接受你的答复。
from ..server import create_app
from ..server.database import db