如何在Jython中安装各种Python库?

时间:2011-07-22 07:39:34

标签: java python jython pip easy-install

我知道我可以用Java安装Jython,并且我可以在使用Python的地方使用Jython。 Jython shell工作正常。

在Jython中,如何安装我通常通过lxmlScrappy BeautifulSoup,pipeasy_install等库>

4 个答案:

答案 0 :(得分:38)

某些Python模块(如lxml)需要C语言中的组件。这些模块在Jython中不起作用。

大多数Python包都可以正常工作,您可以使用与CPython中使用的相同的工具来安装它们。这是described in Appendix A of 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或时都必须键入整个路径   安装到此目录的其他脚本。

在Jython中安装setuptools之后自己测试,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'>
>>>

答案 1 :(得分:10)

从v2.7b4开始,Jython发行版包含the ensurepip module,简化了pip和setuptools的安装:

jython -m ensurepip

小心sys.platform=='win32' issue会妨碍您使用依赖此方法确定主机平台的PyPI包。

答案 2 :(得分:7)

尽管你拥有Java库的强大功能,但不是无法安装一些python C库的限制。

例如,您最好使用Jsoup代替Beautiful soup,或者使用Jtidy这样的完整解决方案。

使用Jaxp代替lxml。

另一个符合您要求的选项是NekoHTML

答案 3 :(得分:1)

我安装了CPython和Jython。如果我想通过pip在Jython中安装包,我就会这样做。

raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

例如,在jython中安装机器人框架(因为我想用Java编写关键字库),我做了

jython -m pip install <package_name>