首页 > 解决方案 > 将路径添加到 sys.path 与 PEP E402

问题描述

为了在磁盘上的某处导入项目特定的模块,可以轻松地将此目录附加到 sys.path:

import sys
sys.path.append(some_module_path)

import some_module

但是,后一种导入现在违反了 PEP E402(“模块级导入不在文件顶部”)。至少 spyder 是这样告诉我的。这里的spyder是不是太挑剔了?

在 spyder 中有一个“项目”的主要思想,我假设环境可以针对这个项目进行调整。但是,我不知道如何根据 spyder 项目修改例如 sys.path。

如何在 spyder 项目中修改 sys.path?或者有没有解决这个问题的通用python方法?

标签: pythonspyderpep8

解决方案


您可以将sys.path扩展名放在单独的模块中,例如_paths.py.

内容_paths.py

import sys

sys.path.append(some_module_path)
sys.path.append(some_other_module_path)
# ...and so on...

然后在您的主应用程序中:

import sys

import _paths
import some_module

some_module.some_func()

该解决方案将您的“项目配置”很好地放在一个地方(这使得将来易于维护),并且至少符合 PEP8(包括 E402)和 pylint 规则。


推荐阅读