【发布时间】:2023-03-20 03:00:02
【问题描述】:
所以我正在开发一个 Python 项目,该项目在我之前的 SVN 存储库中。我第一次拉的时候,结构有点奇怪,因为它类似于:
Proj\
src\
tags\
trunk\
然后一切都在 src\ 里面是 python 模块文件,除了 src\ 原来只是一个逻辑文件夹,里面没有整体包。项目中的任何地方都没有 __init__.py 。所以我想至少重组它,这样我就可以通过我的项目使用相对导入。我也想设置它,让它看起来更像这样。
Proj\
src\
model\
controller\
view\
test\
tags\
trunk\
但是,我尝试设置它,无论我做什么,当我必须遍历包时,它都无法解决相对导入问题。我在每个级别包中放置了一个 __init__.py 文件,包括一个位于 src\ 文件夹中的文件,所有这些文件都定义了 __all__ 。但是,当我尝试在我的 test\ 包中进行单元测试并执行导入时说:
from ..model.foo import Foo
尝试从位于模型包内的模块 foo.py 导入 Foo 类,它无法解析。以防万一这是单元测试的问题,我还尝试了控制器包中的一个模块,该模块依赖于模型包中的一个类,反之亦然。他们都没有工作。我该如何解决这个问题?
【问题讨论】:
-
当你说它没有解析时,你的意思是你在运行模块时出错了或者你在PyDev中出错了?
-
我现在假设这是运行模块的错误,但我不想排除可能是某种 PyDev 配置问题的可能性。
-
你能发布你遇到的异常吗?