python - 导入相关包进行测试

标签 python import module package

我开发了一个具有以下结构的解决方案:

my_package/
my_test_data/
test.py

test.py中,我可以轻松导入my_package(from my_package import my_class)。这在我选择的 IDE 中非常有用,我可以在其中编写测试用例、执行它们并最终在需要时在正在测试的代码中设置断点。

精细结构,准备分发,更改为:

my_package/
tests/
    my_test_data/
    test.py

如果有人想测试已安装的内容是否正常工作,这是可以的。测试引用 my_package 的已安装版本。问题是,在开发过程中,我需要从开发文件夹中引用 my_package ,以便我可以测试正在开发的实时版本,并最终进入其中进行调试。我尝试使用相对导入 from .my_package import my_classfrom .. my_package import my_class 和其他组合来解决问题,但出现此异常:

ValueError: Attempted relative import in non-package

有什么帮助吗?

最佳答案

我假设开发结构位于 /dev 下,分发结构位于 /install 下。

请注意,默认情况下,sys.path将脚本目录作为其第一个条目。因此,如果 test.py 有一个 import my_package 语句并且您运行 /dev/test.py,它应该找到 my_package,即使您的 $PYTHONPATH 为空。如果 /install$PYTHONPATH 中的第一个条目,则运行 /install/tests/test.py 应该找到 /install/my_package 用于导入 my_package

摘要:您是否尝试过在 test.py 中使用 import my_package 并在 $PYTHONPATH 中包含 /install >?

关于python - 导入相关包进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497060/

相关文章:

python - 将日期时间字段转换为特定时区

python - 如何在 openpyxl 中进行列对齐?

python - 从周数获取日期

python - 帮助解决 python urllib2 导入错误

javascript - 引用错误 : can't access lexical declaration `Tag' before initialization

windows - Theano导入错误-Windows 7-64b

python - 命名空间包有哪些注意事项

javascript - 模块 'ngStorage' 不可用

python - 如何正确处理 Python 中的循环模块依赖?

python - 主脚本中定义的全局变量无法由不同模块中定义的函数访问