Eclipse + Jython:使用一对一对象工厂时找不到Python模块

1 投票
1 回答
1906 浏览
提问于 2025-04-17 05:17

我正在尝试在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获取的(这里的statePySystemState的一个实例)。

到目前为止,我已经定义了相关的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(最后一部分)。

撰写回答