python - 测试目录中的相对导入
问题描述
我典型的 Python 项目结构看起来像
setup.py
foobar/
__init__.py
main.py
something_else.py
helpers.py
test/
addition/
test_consistency.py
test_speed.py
subtraction/
test_consistency.py
test_speed.py
这很好用。
然后我注意到加法和减法测试共享相当多的代码、复杂的断言等。我试图将代码移动到帮助文件中
test/
helpers.py
addition/
test_consistency.py
test_speed.py
subtraction/
test_consistency.py
test_speed.py
并从加法/减法中导入,例如
from .. import helpers
但这失败了
E ImportError: attempted relative import with no known parent package
好吧,测试文件夹不是“包”,相对导入不起作用。 一个著名的 Python 问题。
如何在加法和减法子文件夹之间共享代码?平面目录结构不是一种选择。(在现实生活中,文件夹结构比上面的例子更复杂。)
奇怪的是,我注意到 pyscaffold对in 中的相对导入有作用tests/
,请参见此处。他们是怎么做到的?
解决方案
推荐阅读
- java - 通过我的命令行运行 Java 代码时出现路径错误
- istio - Istio,使用 mTLS 和现有证书的自定义出口
- tomcat - Tomcat访问日志中奇怪的服务器主机名
- azure - 防止盗版我的 Azure VMI 解决方案软件的程序检查
- c - 如何在C中接收用户的三个输入
- winforms - powershell winforms函数输出到文本框
- python - matplotlib 2.0.2 之后的极坐标图问题
- node.js - 如何从链接/子函数(子函数到父函数)返回布尔值?节点
- php - 在自定义主题上获取 Woocommerce 产品
- php - 无法连接到 mssql 服务器或 sqlsrv 未显示在 phpinfo 上