【问题标题】:Importing python modules in jython在 jython 中导入 python 模块
【发布时间】:2011-03-16 10:18:16
【问题描述】:

我在 jython 下导入 scapy 时遇到了一些问题。我一直在做java,但是python只有一两天。

重现问题的简单案例是:

$jython

>>> import sys
>>> sys.path
['', '/usr/share/jython/Lib', '/usr/lib/site-python', '__classpath__']
>>> from scapy.all import *
Traceback (innermost last):
File "<console>", line 1, in ?
ImportError: no module named scapy

如果我在python 下执行这些完全相同的步骤,则一切正常。我如何告诉 jython 使用 scapy?如果有帮助,我正在运行 ubuntu 10.04 并通过 apt-get install 安装 jython 和 scapy

【问题讨论】:

  • 在运行 vanilla Python 时检查sys.path。有区别吗?

标签: python import jython importerror scapy


【解决方案1】:

您在打印 sys.path 时做对了。现在你应该去你的python shell,然后这样做:

$ python
>>> import scapy
>>> print scapy.__file__

这将显示从哪里导入 scapy。最可能的问题是您的 jython sys.path 不包含包含 scapy 的目录。

【讨论】:

  • 那么如何将 python 包的目录添加到 jython sys.path 中?
【解决方案2】:

您可以为 jython 执行 easy_install。

运行:

jython ez_setup.py 

来自http://peak.telecommunity.com/dist/ez_setup.py

然后你会在你的 jython/bin 下得到一个 easy_install 脚本 去那里

jython easy_install scapy

(或您需要的任何模块)

那么下次启动 jython 时就可以导入了。

【讨论】:

  • 我在 tomcat 下遇到了一个问题,我必须先做一个“导入站点”
  • 官方文档在这里:jython.org/jythonbook/en/1.0/…
  • 就我而言,我不得不改用jython ez_setup.py scapy
  • 这对我有什么好处?我可以使用 PYTHONPATH 然后它可以导入模块。不行的是导入的模块可以导入其他模块。
【解决方案3】:

对 Amala 的回答进行了修改。他的代码对我不起作用,但我用类似的方法解决了它。这可以代替。

从这里下载ez_setup.pyhttp://peak.telecommunity.com/dist/ez_setup.py

然后运行jython ez_setup.py scapy

在任何文件夹路径上运行都没关系

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    相关资源
    最近更新 更多