2011-11-21 203 views
4

在使用PyDev的Eclipse中,我在获取此代码时遇到了Unresolved import: pilImage错误。使用from-import-as导入时无法解析导入错误

从PyDev或shell内部执行代码时,代码运行良好,但IDE会将我当作错误点亮。

from PIL import Image as pilImage 
# do something with pilImage 

我该如何解决问题?

回答

0

你确定你的PyDev配置的解释器知道PIL包和它的内容吗? 如果您在安装PIL包之前配置了PyDev Python解释器,它不知道任何关于它的信息。

+0

我敢肯定,如果它不会,它将无法运行。我怀疑这个错误是导致https://sourceforge.net/tracker/index.php?func=detail&aid=3439666&group_id=85796&atid=577329 – sorin

+0

提出的解决方案工作吗?因为解释器的运行方式与eclipse/pydev配置无关。 pydev只需要配置自身。 F.E.自我暗示功能。如果通过pydev-ui执行当前脚本,则会使用真正的解释器。 –

+0

确切地说,在PyDev或外部运行不会导致错误。 – sorin

3

我认为这可能是在PIL应如何使用有点误会......

PIL有一个相当罕见的包装,其中PIL库添加到PYTHONPATH(不包含目录它),所以,如果你有安装方便安装,它会做一些如:

/Lib 
/Lib/site-packages 
/Lib/site-packages/PIL-1.1.7-py2.6-win32.egg 
/Lib/site-packages/PIL-1.1.7-py2.6-win32.egg/Image.py 

所以,这实际上应该做进口是:进口图片为pilImage(即:不从PIL在导入中)。

参考备份,这是进口应该如何:http://effbot.org/imagingbook/introduction.htm

在这种情况下,该目录添加到PYTHONPATH应该是:“/Lib/site-packages/PIL-1.1.7- py2.6-win32.egg”

请注意,如果您重命名的目录/Lib/site-packages/PIL-1.1.7-py2.6-win32.egg您的导入可以工作/库/ site-packages/PIL,并在PYTHONPATH中只剩下/Lib/site-packages/(在这种情况下,您仍然需要转到PyDev解释er配置,只需按下apply,以便它发现新的PIL包被添加到PYTHONPATH中 - 请注意,在这种情况下/ Lib/site-packages/PIL不应该添加到PYTHONPATH中

1

安装PyDev后,您是否将PIL安装为鸡蛋?如果是这样,PyDev不会知道它在那里。删除并重新添加解释器来解决这个问题。有关更多信息,请参见SO question

0

有时PyDev要求您重新启动Eclipse以纠正错误的错误消息。这通常是由用户在添加模块之前写入导入引起的。