我创建了一个默认的Maven Java项目,并添加了以下依赖项:
<dependency>
<groupId>org.python</groupId>
<artifactId>jython</artifactId>
<version>2.7.0</version>
</dependency>
然后我创建了一个包src/main/java/mypkg
,并添加了这个类:
当我使用exec:java
运行它时
mvn exec:java -Dexec.mainClass=mypkg.JythonMinimalTest
我得到以下神秘的输出:
ERROR: `python` not available.
Available engines:
org.python.jsr223.PyScriptEngineFactory@2b0e6c89
names:
python
jython
jdk.nashorn.api.scripting.NashornScriptEngineFactory@46618cb8
names:
nashorn
Nashorn
js
JS
JavaScript
javascript
ECMAScript
ecmascript
管理器返回null
,但在下一行中列出可用脚本引擎中的python
/jython
。在
纳肖恩用同样的方法工作得很好。我和Jython怎么了?在
您要么需要使用python选项禁用
importSite
,正如您已经发现的那样。或者,将python.home
设置为提取jython
的位置。我把它提取到我的主文件夹中jython2.7.0
;添加这个允许python发现正确的
PYPATH
,以便它可以构建python环境。在这里有一个解决方法:
在顶部添加:
在调用
^{pr2}$getEngineByName
之前,设置这样引擎就不会出问题了。在
从this conversation得到解决方案。在
另一个有效的解决方案(由mzjn在评论中提出)是用}工件。在
jython-standalone
替换{解决此问题的一种方法是设置env var
jythonpath
以包含实例所需的特定Lib
目录(并包括Lib\site-packages
以避免特定包的进一步问题)相关问题 更多 >
编程相关推荐