2010-07-15 142 views
9

我在jython下導入scapy時遇到了一些問題。我一直在做Java永遠,但只有一兩天的Python。在jython中導入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

+0

運行vanilla Python時檢查'sys.path'。有區別嗎? – 2010-07-15 13:57:26

回答

15

安裝了jython和scapy。你已經做了正確的事情,打印sys.path。現在你應該去你的python shell,並且這樣做:

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

這將顯示從哪個scapy導入。最可能的問題是您的jython sys.path不包含包含scapy的目錄。

+0

那麼如何才能將python包的目錄添加到jython sys.path? – BoltzmannBrain 2015-03-25 21:59:17

5

你可以做easy_install for jython。

運行:

jython ez_setup.py 

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

然後你會得到你的Jython/bin中下一個easy_install的腳本 去那裏

jython easy_install scapy 

(或任何你需要的模塊)

然後下次啓動jytho你將能夠導入它。

+0

我在tomcat下有一個問題,我必須首先做一個'import site' – Amala 2010-08-30 21:06:54

+0

官方文檔在這裏:http://www.jython.org/jythonbook/en/1.0/appendixA.html?highlight=module#setuptools – user323094 2012-11-20 15:08:27

+0

在我的情況下,我不得不使用'jython ez_setup.py scapy' – 2015-11-26 10:10:41

0

修改Amala的答案。他的代碼對我不起作用,但我用類似的東西解決了它。這反過來。

從這裏http://peak.telecommunity.com/dist/ez_setup.py

下載ez_setup.py然後運行jython ez_setup.py scapy

在任何文件夾路徑上運行並不重要