Eclipse + Jython:使用一对一对象工厂时找不到Python模块
我正在尝试在Eclipse中运行一个Java项目,这个项目需要用到一个Python模块,但我总是收到一个错误提示,说找不到我的Python模块。我按照《Python权威指南》中“更详细的一对一对象工厂”的方法在做。我觉得可能是我的项目配置或路径设置有问题,但我就是搞不清楚具体哪里出了错。
这是错误信息:
PYTHONPATH: ['.', '/opt/eclipse/plugins/org.python.pydev.jython_2.2.3.2011100616/Lib'] Exception in thread "main" Traceback (innermost last): (no code object) at line 0 ImportError: No module named building
Python的路径是从state.path
获取的(这里的state
是PySystemState
的一个实例)。
到目前为止,我已经定义了相关的Java接口,实现了Python模块,并把它们都放在了类路径上。此外,项目中也添加了Java和PyDev的特性,Python源文件夹也在PYTHONPATH上。尽管如此,我还是遇到了上面提到的错误。我还需要把包含模块的Python源文件夹放到其他地方吗?
更新:根据Fabio的建议,我把Java的bin文件添加到了Python路径中,并移除了Java的源文件。这并没有解决问题,所以我把我的项目配置文件放在这里。
我的PyDev配置:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?>
<pydev_project>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">jython</pydev_property>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">jython 2.7</pydev_property>
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
<path>/SampleJythonIntegration/pysrc</path>
<path>/SampleJythonIntegration/bin</path>
</pydev_pathproperty>
</pydev_project>
我的Java配置:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SampleJythonIntegration</name>
<comment></comment>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
1 个回答
0
在使用PyDev进行Java项目时,你需要把bin文件夹添加到PYTHONPATH中(也就是说,要添加的是包含.class文件的文件夹,而不是包含.java文件的文件夹)。
详细信息可以查看这里:http://pydev.org/manual_101_project_conf2.html(最后一部分)。