Импорт модулей python в jython

У меня проблемы с импортом scapy под jython. Я занимаюсь 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 и устанавливаю jython и scapy через apt-get install


person TheBigS    schedule 15.07.2010    source источник
comment
Проверьте sys.path при запуске ванильного Python. Есть разница?   -  person Donald Miner    schedule 15.07.2010


Ответы (3)


Вы правильно сделали, напечатав sys.path. Теперь вам нужно перейти в оболочку Python и сделать следующее:

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

Это покажет, откуда импортируется scapy. Наиболее вероятная проблема заключается в том, что ваш jython sys.path не включает каталог, содержащий scapy.

person Ned Batchelder    schedule 15.07.2010
comment
Итак, как тогда можно добавить каталог для пакетов python в jython sys.path? - person BoltzmannBrain; 26.03.2015

Вы можете выполнить easy_install для jython.

Бегать:

jython ez_setup.py 

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

Затем вы получите сценарий easy_install под вашим jython / bin, перейдите туда и

jython easy_install scapy

(или любой другой модуль, который вам нужен)

Тогда при следующем запуске jython вы сможете импортировать его.

person Amala    schedule 10.08.2010
comment
У меня была проблема с tomcat, когда мне сначала нужно было сделать `` сайт импорта '' - person Amala; 31.08.2010
comment
Официальные документы находятся здесь: jython.org/jythonbook/ ru / 1.0 / - person user323094; 20.11.2012
comment
В моем случае мне пришлось использовать jython ez_setup.py scapy вместо - person Aminah Nuraini; 26.11.2015
comment
Какая польза от этого для меня? Я могу использовать PYTHONPATH, а затем он работает для импорта модулей. Что не работает, так это то, что импортированный модуль может импортировать другие модули. - person Micha93; 30.06.2021

Модификация из ответа Амалы. Его код у меня не работает, но я решил его чем-то похожим. Вместо этого это работает.

Загрузите ez_setup.py отсюда http://peak.telecommunity.com/dist/ez_setup.py

Затем запустите jython ez_setup.py scapy.

Запуск по любому пути к папке не имеет значения

person Aminah Nuraini    schedule 26.11.2015