我有以下python代码(helloworld.py)
from faker import Factory
class HelloWorld:
fake = None
name = None
def __init__(self):
self.fake = Factory.create()
self.name = ""
def getName(self):
self.name = self.fake.name()
return self.name
我试图从Java访问该模块,我的Java代码如下
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("import sys\nsys.path.append('C:\\Python27\\Lib\\site-packages')\n" +
"sys.path.append('C:\\Python27\\Lib\\site-packages\\helloworld')\nfrom helloworld import HelloWorld");
PyInstance wrapper = (PyInstance)interpreter.eval("instance = HelloWorld" + "(" + ")");
PyObject result = wrapper.invoke("instance.getName()");
String realResult = (String) result.__tojava__(String.class);
但我收到了错误
SyntaxError: ('future feature unicode_literals is not defined', ('C:\\Python27\\Lib\\site-packages\\faker\\generator.py', 1, 6, ''))
其中generator.py使用该模块
generator.py
---------------
from __future__ import unicode_literals
我使用的是Python 2.7。我应该在这里尝试使用更新版本的Python吗?
请提出任何建议。
Python解释器配置了Python 2.7(下面的Eclipse快照)
是的,从IDLE执行时,我可以从将来导入unicode_literals。
感谢@Martijn Pieters
解释器实际上正在使用2.1,我可以在sys.version中看到。
现在我该如何改变它来代替使用2.7?