2

我开始使用 Jython。我注意到sys.path从命令行执行 Jython 与从 Eclipse 执行时完全不同。

命令行

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 等)。

jython.jar在 Eclipse 中使用“添加 JAR”按钮将其添加到 Java 构建路径。我写了一个简单的 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: No module named ...

所以我.jython在我的主目录中创建了一个文件,其中包含:

python.path=/jproject/extras/2.5.3/Lib:/jproject/extras/2.5.3/Lib/site-packages

它似乎解决了导入问题。但是,这是正确的方法吗?

我想我不必手动执行最后一步,可能我安装的 Jython 很糟糕。

4

1 回答 1

1

看起来我在这里的问题中描述了同样的问题:

我提出的解决方案是不需要用户执行任何操作来设置 python.path 的解决方法:基本上我在初始化 jython 环境之前添加了将 python.path 设置为应用程序工作目录 (user.path) 的代码。

于 2013-02-17T19:38:25.750 回答