-2

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

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

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

我刚刚开始使用 Python 进行编程,并且我遇到过这个问题的许多来源。

对我来说这个问题很有趣,当编码一切正常,但它没有运行!

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

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

4

2 回答 2

2

您的搜索路径错误。

2个常见的原因是:

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

- IDE 中的搜索路径与 shell 中的搜索路径不同。我没有使用 eclipse for 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 包含以及何时通过 python 本身
包含:通过 python 包含受控程序,当您知道 100% 时您的模块将始终位于同一位置。

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

于 2013-02-07T13:12:37.103 回答
1

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

于 2013-02-07T12:59:32.377 回答