web-dev-qa-db-fra.com

Comment puis-je installer différentes bibliothèques Python dans Jython?

Je sais que je peux installer Jython avec Java et que je peux utiliser Jython là où j'utilise Python. Le shell Jython fonctionne bien.

Dans Jython, comment puis-je installer des bibliothèques telles que lxml, Scrappy et BeautifulSoup que j'installerais normalement via pip ou easy_install

45
Mirage

Certains modules Python, tels que lxml, ont des composants requis en C. Ceux-ci ne fonctionneront pas en Jython.

La plupart des packages Python fonctionneront correctement et vous pouvez les installer à l'aide des mêmes outils que ceux utilisés dans CPython. Ceci est décrit dans l’Annexe A de Jython Book :

Pour obtenir setuptools, téléchargez ez_setup.py à partir de http://peak.telecommunity.com/dist/ez_setup.py . Ensuite, allez au répertoire où vous avez laissé le fichier téléchargé et exécutez:

$ jython ez_setup.py

[Le script easy_install sera] installé dans le répertoire bin de l'installation de Jython (/home/lsoto/jython2.5.0/bin dans l'exemple ci-dessus). Si vous travaillez fréquemment avec Jython, c’est une bonne idée de ajoutez ce répertoire à la variable d’environnement PATH, de sorte que vous n’avez pas devez taper le chemin complet à chaque fois que vous voulez utiliser easy_install ou d'autres scripts installés dans ce répertoire.

Le test moi-même, après avoir installé setuptools dans Jython, pip installé correctement:

$ 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'>
>>>
36
Jeremy Banks

A partir de la v2.7b4, la distribution Jython inclut le module Ensurepip }, ce qui simplifie l'installation de pip et de setuptools:

jython -m ensurepip

Méfiez-vous des (sys.platform == 'win32' } _ numéro qui vous empêcheront d'utiliser les packages PyPI qui utilisent cette méthode pour déterminer la plate-forme Host.

10
Each

Etre Jython, bien que vous ayez le pouvoir des bibliothèques Java, pas la limitation de l’impossibilité d’installer quelques bibliothèques C python.

Par exemple, il vaut mieux utiliser Jsoup au lieu de Beautiful soup ou opter pour une solution complète telle que Jtidy .

Utilisez Jaxp au lieu de lxml.

Une autre option qui correspond à vos besoins est NekoHTML

7
sayth

J'ai CPython et Jython installés. Voici ce que je fais si je veux installer un paquet dans Jython via pip. 

jython -m pip install <package_name>

Par exemple, pour installer le framework de robot en jython (comme je veux écrire les bibliothèques de mots clés en Java), j’ai

jython -m pip install robotframework
0
Moses