为pydev、Eclipse中的Java项目在sys.path中添加python模块

为pydev、Eclipse中的Java项目在sys.path中添加python模块,java,eclipse,import,pydev,sys.path,Java,Eclipse,Import,Pydev,Sys.path,我一直在遵循Jython的书,以便能够获得一个Java应用程序来导入Python模块 明确地说,“为了使用这种技术使用Jython模块,您必须确保.py模块包含在sys.path中,或者在Java代码中硬编码模块的路径” 如何确保将.py模块添加到Eclipse中pydev内的sys.path?。我使用的是EclipseKepler发行版构建id:20130614-0229、Pydev2.8.1版和JDK6 每当我尝试导入Python模块时,总是会出现导入错误 从Java类打印sys.path(

我一直在遵循Jython的书,以便能够获得一个Java应用程序来导入Python模块

明确地说,“为了使用这种技术使用Jython模块,您必须确保.py模块包含在sys.path中,或者在Java代码中硬编码模块的路径”

如何确保将.py模块添加到Eclipse中pydev内的sys.path?。我使用的是EclipseKepler发行版构建id:20130614-0229、Pydev2.8.1版和JDK6

每当我尝试导入Python模块时,总是会出现导入错误

从Java类打印sys.path(如下面的代码片段所示)告诉我sys.path由['C:\jython2.5.3\Lib'、'classpath'、'pyclasspath/'组成

如何在项目属性(或Pydev开发环境中的任何位置)中设置此sys.path

我不想修改Java代码中的sys.path

public BuildingFactory() {
    PythonInterpreter interpreter = new PythonInterpreter();
    interpreter.exec("import sys");
    interpreter.exec("import sys.path");
    interpreter.exec("print sys.path");
    interpreter.exec("from Building import Building");
    buildingClass = interpreter.get("Building");
    }
['C:\jython2.5.3\Lib','classpath,'pyclasspath/'] 线程“main”回溯中出现异常(最近一次调用): 文件“”,第1行,在 ImportError:没有名为Building的模块

更新


根据,在Jython注册表文件中修改了python.path,以将python模块添加到pythonpath。谢谢,@SimonC的提示。

花了几秒钟看了文档(因此我没有ide,如果它真的能工作的话),看起来您可以使用传入构造函数。
PySystemState
有一个公共字段,您可以将路径项附加到该字段中

更新

由于您希望在运行时配置中指定路径,因此您可以通过在命令行上指定
python.path
system属性(从以下位置)来完成此操作:


对于PyDev/Eclipse,您应该将文件夹标记为源文件夹(源文件夹是项目中将添加到PYTHONPATH的文件夹)


有关详细信息,请参见(如果您想从jython中指向java项目,最后还有一节)。

我正在寻找一种方法,以精确避免在java代码中修改sys.path,包括使用PySystemState。感谢您查阅文档,@SimonC.Why?您希望在什么级别将条目添加到python路径?您希望在您的机器上运行的任何东西都具有相同的路径,还是只希望Eclipse中的特定运行配置?回答您的问题-Eclipse中的特定运行配置。我正在使用pydev插件。理想情况下,对于Eclipse Java项目A,我希望能够修改项目属性,即项目A使用Eclipse项目B中的python模块pYM,所有项目都位于相同的Eclipse工作区中。感谢您的持久性。您关于修改python.path系统属性的回答非常接近。Jython常见问题解答提示非常及时。原来python.path可以在Jython注册表文件中修改。谢谢,@fabio zadrozny。我可以从jython项目中指向java项目。我的问题与此相反,即指向java项目中的python项目。Python项目文件夹已标记为源文件夹。但是,Java项目仍然看不到sys.path上的那些Python项目文件。我在Python源文件夹中还有一个'init.py'。Pydev插件应该允许更容易地修改sys.path。这也将使其他Pydev用户受益匪浅。请将此视为改进PyDeV插件的谦逊请求。不要小看你和其他人为开发Pydev所付出的巨大工作和努力,我们非常感谢。好吧,我想我真的误解了。。。好的,反过来说,您必须将生成.pyc$类的文件夹添加到JDT中(因此,更重要的是让JDT看到Jython类——在这种情况下,我不知道如何在PyDev端解决问题……)。或者我仍然误解了这里的情况:)对@fabio zadrozny,它关注的是Java项目看到的.pyc$class-Jython类。然而,最基本的问题是——PyDev中的Java项目中的sys.path不能被修改吗?
Properties props = new Properties();
// set in the VM args in the Eclipse runtime configuration instead
// props.setProperty("python.path", "/home/modules:scripts");
PythonInterpreter.initialize(System.getProperties(), props,
                             new String[] {""});