【发布时间】:2016-08-18 02:23:34
【问题描述】:
问题
PEP8 有一条关于将导入放在文件顶部的规则:
导入总是放在文件的顶部,就在任何模块 cmets 和文档字符串之后,模块全局变量和常量之前。
但是,在某些情况下,我可能想做一些类似的事情:
import sys
sys.path.insert("..", 0)
import my_module
在这种情况下,pep8 命令行实用程序会标记我的代码:
E402 模块级导入不在文件顶部
通过sys.path 修改实现 PEP8 合规性的最佳方法是什么?
为什么
我有这个代码是因为我关注The Hitchhiker's Guide to Python 中给出的the project structure。
该指南建议我有一个 my_module 文件夹,与 tests 文件夹分开,两者都在同一个目录中。如果我想从tests访问my_module,我想我需要将..添加到sys.path
【问题讨论】:
-
为什么不写一个
setup.py并实际安装my_module进行测试? -
因为这样不太方便。我想我可以,但我宁愿不这样做。
-
为谁?如果您想在任何地方实际使用这个项目,那么启动和运行它是最简单的方法。
-
来自PEP8:“但是,知道什么时候应该不一致——有时风格指南的建议并不适用。如有疑问,请做出最佳判断。”。有时您必须违反 PEP8 合规性,这没关系。
-
@jonrsharpe 这是我将分享的未来事情的好习惯。 (我确实明白你的意思,在这种情况下我可以使用 setup.py)。我会记住这一点的。
标签: python python-3.x pep8