【发布时间】:2011-01-27 22:39:46
【问题描述】:
当我使用 PyDev 插件在 Eclipse 中编写 import MySQLdb 时,我得到一个未解析的导入。但是,程序运行没有错误。我可以添加注释以消除错误,但是处理此问题的正确方法是什么?
如何帮助 Eclipse 知道 MySQLdb 的存在?
【问题讨论】:
当我使用 PyDev 插件在 Eclipse 中编写 import MySQLdb 时,我得到一个未解析的导入。但是,程序运行没有错误。我可以添加注释以消除错误,但是处理此问题的正确方法是什么?
如何帮助 Eclipse 知道 MySQLdb 的存在?
【问题讨论】:
听起来MySQLdb 在您的sys.path 上,但不在您的Eclipse 项目的PYTHONPATH 上;换句话说,Eclipse 认为您将在运行时遇到导入错误,因为您还没有完全配置它。 Google 似乎说您可以更改 Window->Preferences->Preferences->PyDev->Python Interpreter 中的此设置以包含您的 MySQLdb 模块的路径。
在确定MySQLdb 可能存在于您的系统上的位置方面寻求帮助:
import MySQLdbprint MySQLdb.__file__ 获得提示;它可能是您需要将路径指向的包中的__init__ 文件。【讨论】:
我曾经在 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
使用神器。
【讨论】:
通过做两件事来解决这个问题:
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 文件。
【讨论】:
添加鸡蛋有效,但错误仍然存在。可以通过添加找到该错误的解决方案
#@UnresolvedImport
到import语句,如:
import web #@UnresolvedImport
来源:http://klaith.wordpress.com/2009/06/12/pydev-unresolved-import-errors/
【讨论】:
这肯定行得通,我刚刚用 Pmw 包尝试过。在站点包中解压缩包。然后从eclipse中删除python解释器,然后再次添加。您的导入错误将消失。您也可能希望将模块添加到强制内置。见How do I fix PyDev "Undefined variable from import" errors?和http://pydev.org/manual_101_interpreter.html
【讨论】:
上面的cdleary 提供了两年前的原因,但这可能更容易。基本上,需要重新安装解释器。
这适用于 Fedora 17,使用包管理附带的 Eclipse 4.2.0。
【讨论】:
我遇到了类似的问题,以下是我为解决问题所做的工作。我有一台 Windows 8 机器,安装了 Python 2.7 并通过 eclipse 运行我的东西。
一些背景:
当我执行easy install 时,它会尝试安装MySQL-python 1.2.5,但以error: Unable to find vcvarsall.bat 失败。我做了一个easy_install 的pip 并尝试了pip 安装,它也因类似的错误而失败。他们都引用了vcvarsall.bat,这与visual studio有关,因为我的机器上没有visual studio,这让我寻找不同的解决方案,我在下面分享。
解决方案:
在完成这两个安装之后,我重新打开了 eclipse 并得到了更新我接受的 eclipse 路径的提示,之后我就可以查询我的 MySQL 数据库了。
【讨论】:
import MySQLdb
如果此代码显示如下错误:
未解决的导入:MySQLdb
您应该将D:\Python27\Lib\site-packages\MySQLdb 添加到您的sys.path。
D:\Python27\Lib\site-packages\MySQLdb 是您在计算机磁盘中安装MySQLdb 的位置。完成此步骤后,错误将消失。
【讨论】: