Jak Mogę zainstalować różne biblioteki Pythona w Jython?

Wiem, że mogę zainstalować Jython za pomocą Javy i że mogę używać Jythona tam, gdzie używam Pythona. Powłoka Jython działa dobrze.

W Jython, jak Mogę zainstalować biblioteki takie jak lxml, Scrappy i BeautifulSoup, które normalnie instalowałbym poprzez pip lub easy_install

Author: Ripon Al Wasim, 2011-07-22

4 answers

Niektóre moduły Pythona, takie jak lxml, mają wymagane komponenty w C. nie będą one działać w Jythonie.

Większość pakietów Pythona będzie działać poprawnie i można je zainstalować za pomocą tych samych narzędzi, których używa się w Cpythonie. Jest to opisane w Dodatku A Księgi Jython :

Aby pobrać setuptools, Pobierz ez_setup.py od http://peak.telecommunity.com/dist/ez_setup.py . Następnie przejdź do katalog, w którym zostawiłeś pobrany plik i wykonaj:

$ jython ez_setup.py

[skrypt easy_install zostanie] zainstalowany w katalogu bin instalacja Jython (/home/lsoto/jython2.5.0/bin w przykładzie powyżej). Jeśli często pracujesz z Jython, dobrym pomysłem jest prepend this directory to the PATH environment variable, so you don ' t musisz wpisywać całą ścieżkę za każdym razem, gdy chcesz użyć easy_install lub Inne skrypty zainstalowane w tym katalogu.

Po zainstalowaniu setuptools w Jython, pip zainstalował się poprawnie:
$ 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'>
>>>
 41
Author: Jeremy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-22 08:01:38

Od wersji 2.7b4 Dystrybucja Jython zawiera moduł ensurepip , który upraszcza instalację pip i setuptools:

jython -m ensurepip

uwaga na sys.Platforma= = "win32' problem , który utrudni Ci korzystanie z pakietów PyPI, które polegają na tej metodzie do określenia platformy hosta.

 12
Author: Each,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:54

Bycie Jythonem chociaż masz moc bibliotek Javy, a nie ograniczenie, że nie możesz zainstalować kilku bibliotek Pythona C.

Na przykład lepiej byłoby użyć Jsoupzamiast pięknej zupy lub wybrać pełne rozwiązanie, takie jak Jtidy.

Użyj Jaxp zamiast lxml.

Również inną opcją, która pasuje do Twoich potrzeb jest NekoHTML

 7
Author: sayth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-28 09:50:52

Mam zainstalowane zarówno CPython jak i Jython. Oto, co robię, jeśli chcę zainstalować pakiet w Jython przez pip.

jython -m pip install <package_name>

Na przykład, aby zainstalować Framework robota w jython( ponieważ chcę napisać biblioteki słów kluczowych w Javie), zrobiłem

jython -m pip install robotframework
 3
Author: Moses,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-03 16:49:52