eclipse - Pydev "Undefine variable from import"在 Ubuntu 上使用 pygame 而不是 Windows

标签 eclipse windows-7 ubuntu pydev pygame

简而言之

在 Ubuntu 11.10 上,对于 pygame 库,pydev 报告“来自导入的 undefined variable ”。在 Windows 7 上,一切都很好。在这两个平台上,代码都能正常工作。

这与 this thread 相同的错误(和 bunch of others )。删除和重新添加我的解释器并没有改变任何东西。我还尝试将 pygame 作为强制内置库包含在内,但它没有改变任何东西(我检查了 pygame 是否在系统 PYTHONPATH 中)。

配置

在 Ubuntu 和 Windows 上,我都使用 Eclipse Indigo 和 Python 3.2。

在 Ubuntu 上,我正在使用:

  • Ubuntu 11.10
  • Pygame 1.9.2pre 从 pygame Hg repo 编译而来。构建和安装后,site-packages/pygame 文件夹包含一堆 .so 和 .py 文件。

  • 在 Windows7 上:
  • 带有 SP1 的 Windows 7 专业版
  • Pygame 1.9.2pre 来自 lfd.uci.edu . MSI 在 site-packages/pygame 文件夹中创建了一堆 .pyd 和 .py。

  • 我知道静态分析不能进入 Ubuntu 上的 .so 文件。我也明白 Python 是一种动态语言。因此 pydev 具有静态分析固有的局限性。但是 Windows 7 上的 pydev 设法链接 .pyd 文件中的类,这些文件是动态库。为什么?我怎样才能让它在 Ubuntu 上运行?

    提示?
    import pygame
    from pygame.locals import *
    

    在 Ubuntu 中使用上面的代码,我可以 ctrl-click(或 f3)到 pygame 包,但不能到 pygame.locals。在 Windows 上,我可以同时访问两者。
    import pygame
    import pygame.locals
    from pygame.locals import *
    

    现在我可以访问 pygame.locals。我想这有助于 pydev 弄清楚“期望”什么,因为 locals.py 实际上存在于 site-packages/pygame 文件夹中。但我不想改变我所有的代码只是为了适应 pydev。

    无论如何,下面的行仍然会在 Ubuntu 上引发“导入中的 undefined variable ”,但在 Windows 上不会。
    except pygame.error:
    

    PS:如果有帮助,我有一个 64 位的联想 T410,并安装了 64 位的所有东西。

    最佳答案

    我刚刚在 Ubuntu 上对其进行了测试,它似乎对我来说可以正常工作......你可以发布以下内容来帮助你修复它吗:

    1 .如果您添加了“pygame”,请从您的强制内置函数中删除它(这个特定用例不需要它......通过查看它的结构,静态分析器似乎应该能够正确处理它,并且pygame 中的 .so 文件将由 shell 自动处理,因此无需显式处理)。

    2 .有一个程序:

    import sys
    print '\n'.join(sorted(sys.path))
    import pygame.locals
    print pygame
    print pygame.locals
    

    当你从 PyDev 启动它时,它给你的输出是什么? (我有兴趣了解 pygame 的完整路径,它是否会在运行时抛出 ImportError 以及你的完整 PYTHONPATH)

    3 .您的错误日志中有错误吗? (PyDev 能够自省(introspection) .so 文件,但它会启动一个单独的 python shell 并通过套接字与它通信,因此,有可能有东西在那里阻塞)。

    关于eclipse - Pydev "Undefine variable from import"在 Ubuntu 上使用 pygame 而不是 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581712/

    相关文章:

    java - 我在动态 Web 项目中遇到此 Tomcat 错误

    java - 无法部署到 Google App Engine : java. lang.IllegalArgumentException:类文件是 Java 8 但最大支持是 Java 7

    Android:Dx 写输出有问题:已经准备好了

    java - 在日历 View 中更改一天的颜色,android

    c++ - 如何从进程ID获取主窗口句柄?

    mysql - 我无法使用 wamp server 2.0 和 win 7 导出我的数据库

    dll - InnoScriptStudio2 加载 ISCmplr.dll 时出错

    ruby - 在 Ubuntu 上安装乘客 gem 时遇到问题

    ubuntu - ssh/shh-copy-id 适用于 root 但不适用于其他用户

    python - 如何更改安装了多个版本的默认 python 3 (Ubuntu 18.04)?