在Jython中导入Python模块

15 投票
3 回答
26809 浏览
提问于 2025-04-16 01:20

我在用 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。

3 个回答

0

这是对Amala回答的修改。他的代码对我来说不管用,但我用类似的方法解决了问题。这段代码可以正常工作。

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

然后运行 jython ez_setup.py scapy

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

5

你可以通过easy_install来安装jython。

运行以下命令:

jython ez_setup.py 

从这个链接下载:http://peak.telecommunity.com/dist/ez_setup.py

然后你会在你的jython/bin目录下找到一个easy_install脚本,去那个地方。

jython easy_install scapy

(或者你需要的任何模块)

下次启动jython的时候,你就可以导入它了。

16

你做得很好,打印了 sys.path。现在你应该打开你的 Python 命令行,输入以下内容:

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

这样你就能看到 scapy 是从哪里被导入的。最有可能的问题是,你的 jython 的 sys.path 里没有包含 scapy 所在的文件夹。

撰写回答