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
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'>
>>>
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.
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
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