【发布时间】:2016-05-01 22:21:14
【问题描述】:
我有一个用 Python 编写的原型,我需要将其移植到 Java 中才能投入生产。 Python 2.7.10 已使用miniconda 安装。该原型使用我使用pip 安装的第 3 方库 nltk。
为了避免从头开始重写代码,至少在最初,我想首先尝试使用jython直接从Java调用原型代码。
当我尝试执行类似
的命令时java -jar jython-standalone-2.7.0.jar myPrototype.py
我明白了
Traceback (most recent call last):
File "myPrototype.py", line 4, in <module>
from nltk import AlignedSent
ImportError: No module named nltk
当我运行 python myPrototype.py 时它工作正常。
有没有办法配置我的jython 安装,以便它可以找到我添加到我的python 安装中的所有第 3 方包?我意识到其中一些可能无法在 jython 中运行,但至少我想访问那些运行的。
【问题讨论】:
-
1.我很可能在 python 中生成生产代码 =) 2. 完全不知道你在做什么。你能说一下你写的这个原型是什么吗?目的是什么?
myPrototype.py中有什么内容?此外,并非所有类型和类对象都可以跨 jython 无缝工作。我的建议是让python做python的东西,让java做java的东西。使用输入/输出文件(JSON/XML/纯文本)或命令行界面连接它们。 -
@alvas 1. 不确定您的意思。我们开发了完全用 python 编写的生产质量系统。 2. 原型使用
nltk库进行一些文本处理。它具体做什么并不重要。问题是关于配置jython以使其能够运行使用pip添加到使用miniconda的python安装doe 的任何第三方包。或者至少是那些与jython兼容的包。 -
我认为
jython无法处理您使用conda拥有的所有库。一旦库依赖于numpy或scipy,您很可能会遇到问题。如果您项目的主要语言是 Java,那么我认为最好的解决方案不是jython,而是像 REST i/o 管道或 JSON/XML 等数据传输标准。
标签: python nltk jython miniconda