【问题标题】:How do I handle an UnresolvedImport Eclipse (Python)如何处理未解析的导入 Eclipse (Python)
【发布时间】:2011-01-27 22:39:46
【问题描述】:

当我使用 PyDev 插件在 Eclipse 中编写 import MySQLdb 时,我得到一个未解析的导入。但是,程序运行没有错误。我可以添加注释以消除错误,但是处理此问题的正确方法是什么?

如何帮助 Eclipse 知道 MySQLdb 的存在?

【问题讨论】:

    标签: python eclipse import


    【解决方案1】:

    听起来MySQLdb 在您的sys.path 上,但不在您的Eclipse 项目的PYTHONPATH 上;换句话说,Eclipse 认为您将在运行时遇到导入错误,因为您还没有完全配置它。 Google 似乎说您可以更改 Window->Preferences->Preferences->PyDev->Python Interpreter 中的此设置以包含您的 MySQLdb 模块的路径。

    在确定MySQLdb 可能存在于您的系统上的位置方面寻求帮助:

    1. 打开交互式解释器,
    2. import MySQLdb
    3. 如果成功,您可以从:print MySQLdb.__file__ 获得提示;它可能是您需要将路径指向的包中的__init__ 文件。

    【讨论】:

    • 嗯。 . .听起来不错,按照说明进行操作,这一切似乎都很有可能。但错误仍然存​​在。
    • 不要听起来太陈词滥调,但是您是否尝试过关闭 Eclipse 然后再打开?除此之外,我完全没有想法。
    • 我想我做到了。我也会尝试清理项目。
    • 对于其他搜索者,我想添加我的经验 -Windows 7、Python 2.7.1、Eclipse 3.6.2、PyDev、Pyschopg(对于 Python 2.7 amd64)。 Psychopg 的安装到 C:\Python27\Lib\site-packages\psycopg2 (在 Python 2.7 安装下)。我首先使用 init.py 引用了该文件夹和所有子文件夹,但发现我还必须引用 site_packages 文件夹。 (stackoverflow.com/questions/2983088/unresolved-import-models)(stackoverflow.com/questions/4631377/…)
    【解决方案2】:

    我曾经在 Windows 上遇到过类似的问题(但在 Linux 上从未遇到过),我发现我必须将我的库的 .egg 目录包含到我的 PYTHONPATH 中。

    例如我的 PYTHONPATH (Pydev/Interpreter - Python/Libraries) 包括:

    C:\Python26\Lib\site-packages
    

    我必须补充:

    C:\Python26\Lib\site-packages\jinja2-2.2.1-py2.6.egg
    

    使用神器。

    【讨论】:

      【解决方案3】:

      通过做两件事来解决这个问题:

      1) Window->Preferences->Preferences->PyDev->Python Interpreter 下的 PYTHONPATH 中添加 MySQLdb egg。

      C:\Python26\Lib\site-packages\MySQL_python-1.2.3c1-py2.6-win32.egg
      

      2) 关闭并重新打开带有红色 x 的 .py 文件。

      【讨论】:

        【解决方案4】:

        添加鸡蛋有效,但错误仍然存​​在。可以通过添加找到该错误的解决方案

        #@UnresolvedImport
        

        到import语句,如:

        import web #@UnresolvedImport
        

        来源:http://klaith.wordpress.com/2009/06/12/pydev-unresolved-import-errors/

        【讨论】:

        • 我阅读了这篇文章并尝试了这个。原始代码将 lxml.etree 作为 etree 导入,然后实例化 etree.HTMLParser()。我将其更改为 lxml.etree.HTMLParser() 并仍然出现错误。我尝试先添加 import lxml 。我包括了上面的短语。那没有帮助。当文件关闭时,问题列表不会显示任何错误,它们会神奇地消失。当我打开 .py 文件时,它再次显示错误。
        【解决方案5】:

        这肯定行得通,我刚刚用 Pmw 包尝试过。在站点包中解压缩包。然后从eclipse中删除python解释器,然后再次添加。您的导入错误将消失。您也可能希望将模块添加到强制内置。见How do I fix PyDev "Undefined variable from import" errors?http://pydev.org/manual_101_interpreter.html

        【讨论】:

          【解决方案6】:

          上面的cdleary 提供了两年前的原因,但这可能更容易。基本上,需要重新安装解释器。

          1. 选择窗口 -> 首选项 -> PyDev -> 解释器 - Python
          2. 在上方窗格中选择 python 解释器
          3. 点击删除
          4. 点击自动配置
          5. 同意一切。

          这适用于 Fedora 17,使用包管理附带的 Eclipse 4.2.0。

          【讨论】:

          • 这些天我没有做太多的python,所以我不会重温这个。
          【解决方案7】:

          我遇到了类似的问题,以下是我为解决问题所做的工作。我有一台 Windows 8 机器,安装了 Python 2.7 并通过 eclipse 运行我的东西。

          一些背景:

          当我执行easy install 时,它会尝试安装MySQL-python 1.2.5,但以error: Unable to find vcvarsall.bat 失败。我做了一个easy_installpip 并尝试了pip 安装,它也因类似的错误而失败。他们都引用了vcvarsall.bat,这与visual studio有关,因为我的机器上没有visual studio,这让我寻找不同的解决方案,我在下面分享。

          解决方案:

          1. https://www.python.org/download 的 2.7.8 重新安装 python 2.7.8 这将添加任何缺少的注册表设置,这是下一次安装所必需的。
          2. http://pypi.python.org/pypi/MySQL-python/1.2.4 安装 1.2.4

          在完成这两个安装之后,我重新打开了 eclipse 并得到了更新我接受的 eclipse 路径的提示,之后我就可以查询我的 MySQL 数据库了。

          【讨论】:

            【解决方案8】:
            import MySQLdb
            

            如果此代码显示如下错误:

            未解决的导入:MySQLdb

            您应该将D:\Python27\Lib\site-packages\MySQLdb 添加到您的sys.path

            D:\Python27\Lib\site-packages\MySQLdb 是您在计算机磁盘中安装MySQLdb 的位置。完成此步骤后,错误将消失。

            【讨论】:

            • 我认为Eclipse是一个很好的工具,而且很方便。您可以使用JetBrains PyCharm 4.0.4。你在用吗?
            猜你喜欢
            • 1970-01-01
            • 2021-06-06
            • 1970-01-01
            • 2016-08-26
            • 2017-02-01
            • 2020-04-01
            • 2015-01-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多