Как я могу установить различные библиотеки Python в Jython? - PullRequest
46 голосов
/ 22 июля 2011

Я знаю, что могу установить Jython с Java и что я могу использовать Jython там, где я использую Python. Оболочка Jython работает нормально.

В Jython, как я могу установить библиотеки типа lxml, Scrappy и BeautifulSoup, которые я обычно устанавливал бы через pip или easy_install

Ответы [ 4 ]

38 голосов
/ 22 июля 2011

Некоторые модули Python, такие как lxml, имеют обязательные компоненты на C. Они не будут работать в Jython.

Большинство пакетов Python будут работать нормально, и вы можете установить их, используя те же инструменты, что и у вас.использовать в CPython.Это описано в Приложении A Jython Book :

Чтобы получить setuptools, скачайте ez_setup.py из http://peak.telecommunity.com/dist/ez_setup.py. Затем перейдите в каталог, где вы оставилискачайте файл и выполните:

$ jython ez_setup.py

[Будет установлен скрипт easy_install] в каталог bin установки Jython (/home/lsoto/jython2.5.0/bin в приведенном выше примере).Если вы часто работаете с Jython, рекомендуется добавить этот каталог в переменную среды PATH, чтобы вам не приходилось вводить полный путь каждый раз, когда вы хотите использовать easy_install или другие сценарии, установленные в этот каталог.

Тестирую сам, после установки setuptools в Jython, pip установлен правильно:

$ sudo /usr/bin/jython2.5.2b1/bin/easy_install pip
Searching for pip
[...]
Installing pip-2.5 script to /usr/bin/jython2.5.2b1/bin
Installing pip script to /usr/bin/jython2.5.2b1/bin

Installed /usr/bin/jython2.5.2b1/Lib/site-packages/pip-1.0.2-py2.5.egg
Processing dependencies for pip
Finished processing dependencies for pip

$ sudo /usr/bin/jython2.5.2b1/bin/pip install bottle
Downloading/unpacking bottle
  Downloading bottle-0.9.6.tar.gz (45Kb): 45Kb downloaded
  Running setup.py egg_info for package bottle
    Installing collected packages: bottle
  Running setup.py install for bottle
Successfully installed bottle
Cleaning up...

$ jython
Jython 2.5.2b1 (Release_2_5_2beta1:7075, Jun 28 2010, 07:44:20) 
[Java HotSpot(TM) 64-Bit Server VM (Apple Inc.)] on java1.6.0_26
Type "help", "copyright", "credits" or "license" for more information.
>>> import bottle
>>> bottle
<module 'bottle' from '/usr/bin/jython2.5.2b1/Lib/site-packages/bottle$py.class'>
>>>
10 голосов
/ 27 марта 2015

Начиная с v2.7b4, дистрибутив Jython включает в себя модуль обеспечения , который упрощает установку pip и setuptools:

jython -m ensurepip

Остерегайтесь sys.платформа == 'win32' проблема , которая помешает вам использовать пакеты PyPI, использующие этот метод для определения платформы хоста.

7 голосов
/ 23 июля 2011

Будучи Jython, вы обладаете мощью библиотек Java, но не ограничением возможности установки нескольких библиотек Python C.

Например, вам лучше использовать Jsoup вместо Красивого супа или пойти на полное решение, например Jtidy .

Используйте Jaxp вместо lxml.

Также другой вариант, который соответствует вашим требованиям, это NekoHTML

1 голос
/ 03 апреля 2018

У меня установлены CPython и Jython. Вот что я делаю, если я хочу установить пакет в Jython через pip.

jython -m pip install <package_name>

Например, чтобы установить каркас робота в jython (поскольку я хочу написать библиотеки ключевых слов в Java), я сделал

jython -m pip install robotframework
...