问题
PEP8 有一条关于将导入放在文件顶部的规则:
导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,模块全局变量和常量之前。
但是,在某些情况下,我可能想做类似的事情:
import sys
sys.path.insert("..", 0)
import my_module
在这种情况下, pep8
命令行实用程序会标记我的代码:
E402 模块级导入不在文件顶部
实现 PEP8 符合 sys.path
修改的最佳方法是什么?
为什么
我有这段代码是因为我遵循 The Hitchhiker’s Guide to Python 中给出 的项目结构。
该指南建议我有一个 my_module
文件夹,与 tests
文件夹分开,两者都在同一目录中。 If I want to access my_module
from tests
, I think I need to add ..
to the sys.path
原文由 Luke Taylor 发布,翻译遵循 CC BY-SA 4.0 许可协议
通常,我的项目的子目录
foo/tests
中有多个带有测试的文件,而我正在测试的模块位于foo/src
中。为了从foo/tests
运行测试而没有导入错误,我创建了一个文件foo/tests/pathmagic.py
看起来像这样;在每个测试文件中,我然后使用
作为第一个导入。 “noqa”注释阻止
pycodestyle
/pep8
抱怨未使用的导入。