我开始使用Jython。我注意到,当从命令行执行Jython而不是从Eclipse执行Jython时,sys.path
完全不同。
命令行
tk:~$ jython
Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:48:36)
[Java HotSpot(TM) Server VM (Oracle Corporation)] on java1.7.0_10
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['',
'/jproject/extras/2.5.3/Lib',
'__classpath__',
'__pyclasspath__/',
'/jproject/extras/2.5.3/Lib/site-packages']
没关系,我可以从那里导入所有内容(导入pdb,导入csv等)。
的Eclipse
我使用“添加JAR”按钮将Eclipse中的jython.jar
添加到Java Build Path。我写了一个简单的Java类(摘录):
PythonInterpreter pi = new PythonInterpreter();
pi.exec("import sys");
pi.exec("print sys.path");
输出:
['/jproject/projects/foobar/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/MyProject/WEB-INF/lib/Lib',
'__classpath__',
'__pyclasspath__/']
从Java项目中创建的Python脚本中我无法导入任何内容。我总是得到ImportError:没有名为...的模块
所以我在我的主目录中创建了一个名为.jython
的文件,其中包含:
python.path=/jproject/extras/2.5.3/Lib:/jproject/extras/2.5.3/Lib/site-packages
似乎解决了导入问题。但是,这是正确的进行方式吗?
我想我不必手动完成最后一步,可能是我严重安装了Jython。
答案 0 :(得分:1)
我的问题here中描述了同样的问题:
我提出的解决方案是workaround,不需要用户设置python.path的任何操作:基本上我添加了将python.path设置为应用程序工作目录(user.path)的代码初始化jython环境。