【问题标题】:Pylint and dynamic changes to sys.pathPylint 和 sys.path 的动态更改
【发布时间】:2017-02-27 18:36:57
【问题描述】:

我有一个项目,其中 python 脚本必须从环境变量中获取一些导入的路径。我正在处理这个问题

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

当我运行应用程序时效果很好。

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

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

编辑:请参阅我下面关于此问题与PyLint "Unable to import" error - how to set PYTHONPATH? 之间差异的评论

【问题讨论】:

  • @ZeroPiraeus 我在发帖前检查了那个。尽管有相似之处,但它并不相同。他/她询问了静态路径。我的问题涉及依赖于环境变量的动态路径。
  • 我现在无法测试这个,但是是什么阻止你使用相同的技术,例如init-hook='import os, sys; sys.path.insert(0, os.environ["PYDIR"])'?
  • 如有必要,您也可以通过修改os.environ$PYDIR 添加到环境中。

标签: python-2.7 pylint


【解决方案1】:

对于我的特殊情况,以下似乎令人满意。 (我在 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)使其立即显而易见)

【讨论】:

    猜你喜欢
    • 2017-11-27
    • 2011-07-20
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 2014-11-06
    相关资源
    最近更新 更多