【问题标题】:Tell pydev to exclude an entire package from analysis?告诉 pydev 从分析中排除整个包?
【发布时间】:2010-08-31 00:19:10
【问题描述】:

今天我的任务是从 pydev 的 django 项目中删除小红色 X。大多数情况下,这涉及修复 pydev 的导入问题。

我正在使用South 进行数据库迁移。 South(如果你不知道的话)生成 python 模块,而 pydev 不喜欢它们。我不想编辑南代码,因为它是生成的。

有没有办法指示 pydev 从分析中排除某些包?像#@UndefinedVariable 这样的东西,除了整个模块?理想情况下,我想忽略名为“迁移”的包。

【问题讨论】:

  • 我使用 #@PydevCodeAnalysisIgnore 但它也在模块级别。我实际上对我想忽略的每个文件都这样做了。文件开头的快捷键 Ctrl + 1 让它更快一点。
  • 也许我会尝试改变 South 在迁移文件的开头输出#@PyDevCodeAnalysisIgnore。

标签: code-analysis pydev


【解决方案1】:

在南方,我在south/management/datamigration.pysouth/management/schemamigration.py 的模板中添加了“#@PydevCodeAnalysisIgnore”。它不会让我忽略整个包,但可以很好地满足我的目的。

【讨论】:

    【解决方案2】:

    我有很多生成的代码。为了避免 PyDev 投诉,我对这些模块进行后处理,如下所示(bash 脚本):

    for file in `find gen -name '*.py'`; do
        mv $file $file.bak
        echo '#@PydevCodeAnalysisIgnore' > $file
        cat $file.bak >> $file
        rm $file.bak
    done
    

    【讨论】:

      【解决方案3】:

      是的,您可以将#@PydevCodeAnalysisIgnore 放在您想忽略的每个文件的开头,但这意味着您正在编写IDE,这不是最佳实践。我更喜欢更改我的项目设置,以便

      1. Eclipse 会忽略一些麻烦的模式(通过添加到Preferences -> PyDev -> Editor -> Code Analysis -> Undefined
      2. Eclipse 会忽略一些麻烦的文件(通过向Project Properties -> Resource -> Resource Filters -> Add Filter...添加排除过滤器...

      在您的特定情况下,我遇到了完全相同的问题,并决定从 Eclipse 项目中排除 South 迁移。在我需要编辑这些自动生成的文件的少数情况下,我没有使用 Eclipse。

      更新: 另一种选择是右键单击您的项目并选择 PyDev -> 删除错误标记 - 但如果有任何您不想隐藏的错误,请不要这样做!

      【讨论】:

        【解决方案4】:

        虽然在从分析中禁用单个迁移文件方面与此问题没有直接关系,但 PyDev 的内置代码分析在 Windows 上让我非常头疼,而在 Mac OS 上相同的项目和设置没有问题。这让我想到了这个问题,关于如何禁用某些资源的分析。项目中有一个很大的文件夹部分,使用 Eclipse ->(文件夹)-> 属性 -> 资源 -> 过滤器(排除)排除此资源甚至没有帮助。

        排除和使用 PyLint 修复了异常缓慢的构建时间。 YMMV。

        【讨论】:

          猜你喜欢
          • 2017-02-12
          • 2015-08-18
          • 1970-01-01
          • 2019-12-26
          • 1970-01-01
          • 2011-11-15
          • 2015-05-24
          • 2013-02-10
          • 1970-01-01
          相关资源
          最近更新 更多