我在Linux Backtrack5中使用eclipse IDE编写Python程序。
Scapy,Python 2.6在Backtrack中可用。使用我在所有模块中看到的自动完成功能,但是当我运行程序时,我看到以下错误:
from scapy.contrib.ospf import OSPF_Hdr
ImportError : No module named contrib.ospf
我刚开始用Python编程,以及我遇到过这个问题的很多来源。
对我来说问题非常有趣,编码时一切正常,但它没有运行!
除了解决这个问题,我想知道为什么会出现这个问题?一般来说如何修复?
也许我的问题是重复的,但是我们需要一个完整的解决方案,在这种情况下,它不会与提出问题的任何其他人重复。
答案 0 :(得分:2)
您的搜索路径错误。
2个常见原因是:
- 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不同