Pylint 和 sys.path 的动态变化

Pylint and dynamic changes to sys.path

我有一个项目,其中 python 脚本必须从环境变量中获取其某些导入的路径。我用

处理这个

sys.path.insert(0, os.environ["PYDIR"])

当我 运行 应用程序时工作正常。

Pylint(在我的 Vim 编辑器中)标记了我从 "PYDIR" 导入的所有模块的导入错误。我讨厌禁用模块中的错误消息,因为它通常很有用。 OTOH,我也讨厌编辑器中的视觉混乱。

我怀疑没有好的解决方案,因为 Pylint 不执行代码,但我想我还是要问一下。

编辑:请参阅我下面关于此问题与 PyLint "Unable to import" error - how to set PYTHONPATH?

之间差异的评论

对于我的特殊情况,以下似乎可以令人满意地工作。 (我在 OS X 上开发,在做这个项目时我启动了一个自定义终端 shell,我的编辑器是 'mvim' (MacVim))

添加到终端启动shell命令列表:

source .myprojectshellenv;

其中 .myprojectshellenv 包含:

export PYDIR=path-to-myproject-python-modules
alias pmvim="env PYTHONPATH=$PYDIR mvim"

那么我只需要记住用 pmvim 而不是 mvim 来编辑文件。 (如果我忘记了来自 pylint 的错误指示器(通过 syntastic)让它立即变得明显)