【问题标题】:How to get PyDev code analysis working on Aptana Studio 3 with virtualenv?如何使用 virtualenv 在 Aptana Studio 3 上进行 PyDev 代码分析?
【发布时间】:2014-08-08 08:43:20
【问题描述】:

我已经数不清我在这里阅读了多少关于 SO 和其他地方的文章,但即使在尝试了所有建议之后我也没有成功,所以我决定在这里发布我的具体问题。

我在 OSX (10.9) 上,我在 virtualenv(除了全局的)和 Aptana Studio 3 上安装了 Python 2.7。我尝试了各种设置,但我通过以下方式获得了当前配置正在做:

File > Import > General – Existing folder as new project

然后我右键单击项目目录并选择 PyDev > Set as Django Project。我选择了我的 manage.py 和设置文件。

然后我转到Properties > PyDev – Interpreter/Grammar 并单击超链接以配置未列出的解释器。我在我的虚拟环境中选择了 python 文件。系统提示我选择以下文件夹列表:

如果我点击“应用”而不更改默认设置,我会收到以下错误:

如果我继续,我会收到标准库包/模块(例如 json)的各种导入错误。我去检查了我的 virtualenv python 安装中的 lib 文件夹,确实这些包/模块不存在,这让我对 virtualenv 的工作原理更加困惑(我讨厌这些配置的东西,我承认很长一段时间我都避免使用它们尽我所能,合作维护我的无知)。我安装了 virtualenvswrapper。 workon env_name 完美运行,pip 安装到正确的站点包,但标准库似乎正在全局 python 中访问。

无论如何,我因此包含了全局 python lib 文件夹:

然后我去了Properties > PyDev – PYTHONPATH > Source folders tab > Add source folder,选择了我的Django项目的根并点击了应用。

我去Aptana Studio 3 > Settings… > PyDev > Code Analysis配置好了:

结果:

某些内容,例如method( self ):(注意空格)会在保存时得到纠正。不过,对于许多其他内容,我没有收到任何 PEP8 警告,例如 dict[ 'key' ](又是额外的空格)、每行超过 80 个字符等。

相对导入(例如from ..utils import *)以及所有使用导入值的行也会出现错误。

我可能做错了什么?

【问题讨论】:

    标签: python django pydev aptana3 pep8


    【解决方案1】:

    虽然我还没有完全解决我的问题,但我将其发布为答案,因为它确实实现了标题的要求。

    我重新安装了 Aptana,并没有将现有文件夹作为项目导入,而是创建了一个 Django 项目 (New > Project > PyDev Django Project),并将默认的新目录替换为项目的根目录。 成功了。我现在收到 PEP8 警告!

    有一些警告

    我不知道这个“创建项目”向导在幕后有什么不同,但我担心它会以某种方式弄乱我的文件。 git status 显示几乎所有已删除的文件和许多未跟踪的文件。我用git checkout -- <project root>git clean -f -d 清理了它。这解决了问题,PEP8 警告仍在显示。

    第二个问题是相对导入被破坏了。例如,我有一个from ..utils import *。此行本身没有错误或警告,但在使用此导入中的某些内容的每一行中,我都会收到错误的“未定义变量”错误。

    根据this issue 的说法,这似乎是 PyDev 的一个开放的、未解决的问题。

    然而,根据PyDev relase history,Release 2.2“Fixed issue with relative import with wildcards”,这让我很困惑。

    目前我想我会简单地隐藏“未定义变量”错误,因为无论如何当我实际运行代码时这些都会被捕获。但是使用 IDE 的全部意义在于具有预先捕获这些错误的功能,因此,如果有人对这个问题有所了解,那将非常感激。

    PS:场景在 LiClipse 中完全一样。 PEP8 现在可以工作,但相对导入会导致“未定义变量”错误。

    更新

    以下是情况截图:

    【讨论】:

    • 这可能是您的项目结构如何完成的一些问题(可能是项目的源文件夹配置错误 - 即:必须添加到 pythonpath 的文件夹)。如果您可以提供带有错误的屏幕截图和 pydev 包资源管理器(以便我可以确定您拥有的结构)来帮助解决这个问题,那就太好了。或者(甚至更好)如果它是 github 上的一个项目,如果你提交 .project 和 .pydevproject 文件,并传递链接,我可以在这里导入并自己检查错误...
    • 嗨 Fabio,感谢您的帮助,并祝贺 PyDev 所做的所有出色工作;)我已经上传了该场景的屏幕截图。不幸的是,这不是一个个人项目,所以我不能在 github 上分享它,但如果您有其他问题,请不要犹豫。
    • 好的,这实际上是一个不同的问题。这是一个错误(在查看您的示例后我能够重现:github.com/fabioz/Pydev/commit/…),因此,下一个 PyDev/LiClipse 版本(下周发布)将修复此问题。
    • 嗨法比奥,太棒了!我期待着发布。顺便说一句,notei que você é conterrâneo meu,abraços da Romênia e obrigado pela ajuda ;)
    【解决方案2】:

    嗯,真正的问题是 Aptana Studio 3 捆绑了旧版本的 PyDev(您不能真正单独更新它)。库的 virtualenv 文件夹在那里,但在此版本的 PyDev 中默认未选中(因此,您可以手动检查它们 - 但在最新的 PyDev 中,这已经正确)。

    现在,对于 pep8,当前版本的 PyDev 无法与最新的 pep8 一起使用是一个已知问题(因为它使用其内部 Jython 来运行它,这有点旧:Jython 2.2.1)。这只是修复了——它仍然没有在正式版本中,仅在当前的夜间构建中——但应该在下周的最终版本中发布(更新了内部 Jython、pep8 并添加了 autopep8 作为代码格式化首选项)。

    不过,如果您使用的是 Aptana Studio 3,我不知道他们何时会将其升级到该版本(我不确定您在 Aptana Studio 3 中使用的是什么,但取决于您的需要, LiClipse:http://brainwy.github.io/liclipse/ 可以用作替代方案——它始终与最新的 PyDev 保持更新。

    【讨论】:

    • 关于virtualenv,它比这更奇怪。标准库模块/包(或至少一些,如json)是从全局 python 安装中加载的。这不仅仅是 Aptana 的事情,即使我从终端运行它也没关系。事实上,如果我去 Finder 并检查 virtualenv lib 文件夹中的包,json 不存在。
    • 关于在Aptana上单独更新PyDev,怎么不行?不应该吗?对我来说似乎很奇怪,我必须下载一个完整的其他独立应用程序才能拥有最新的 PyDev。例如,我也使用 Rails,将所有东西都放在一个地方会更有意义。
    • 因为 Aptana Studio 是作为 RCP 应用程序构建的,它依赖于特定版本的 PyDev。
    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    相关资源
    最近更新 更多