导入错误:没有名为...的模块[请完整解决方案]

时间:2013-02-07 12:45:06

标签: python linux eclipse module

我在Linux Backtrack5中使用eclipse IDE编写Python程序。

Scapy,Python 2.6在Backtrack中可用。使用我在所有模块中看到的自动完成功能,但是当我运行程序时,我看到以下错误:

from scapy.contrib.ospf import OSPF_Hdr
ImportError : No module named contrib.ospf

我刚开始用Python编程,以及我遇到过这个问题的很多来源。

对我来说问题非常有趣,编码时一切正常,但它没有运行!

除了解决这个问题,我想知道为什么会出现这个问题?一般来说如何修复?

也许我的问题是重复的,但是我们需要一个完整的解决方案,在这种情况下,它不会与提出问题的任何其他人重复。

2 个答案:

答案 0 :(得分:2)

您的搜索路径错误。

2个常见原因是:

  • 开发和执行中的Pythonversions是不同的。你确定你两次都使用python2.6吗?因为并非所有版本的python都可以使用所有软件包。

- IDE中的搜索路径与shell中的搜索路径不同。我没有使用eclipse进行python的经验,但是在其他IDE中我遇到过这种情况。

所以在bash中你可以写:
export PYTHONPATH =" $ PYTHONPATH:/ where / module / lives /"
包括路径。

如何在bashprofile中包含这个: http://blog.streamitive.com/2011/12/01/export-pythonpathpythonpath/
您可以通过python本身包含路径: http://www.johnny-lin.com/cdat_tips/tips_pylang/path.html

何时通过bash包含以及何时包含via python本身:
包含via python用于受控程序,当你知道100%你的模块总是在同一个位置时。

否则,您应该明确设置路径。也许在启动shell脚本中,在crontab命令中,或者在调用python程序的任何地方。

答案 1 :(得分:1)

IDE正在使用的PYTHONPATH与运行该程序的PYTHONPATH不同