通过Jython使用.pyc文件

0 投票
2 回答
1382 浏览
提问于 2025-04-16 21:00

我正在为一个Python工具构建一个网页界面。这个界面是用J2EE(Spring框架)设计的。

在这个过程中,我需要调用一些Python函数,所以我使用了Jython来实现这个功能。

不过,有些模块我没有Python的源文件,只有.pyc文件,还有一份列出该文件方法的文档。我需要知道如何在.pyc文件中使用Jython调用这些函数。

我尝试过反编译这些Python文件,但因为它们是用Python 2.7编译的,所以我找不到合适的反编译工具来完成这个任务。

2 个回答

3

‘编译过的’ Python 代码,也就是 '.pyc' 文件,是和具体实现有关的。即使是 CPython(标准的 Python 实现),也不能导入由不同版本的 CPython 生成的 .pyc 文件。而且本来就不应该这样做。所以,如果 Jython 能够运行任何 CPython 版本创建的 .pyc 文件,我会感到很惊讶。

'.pyc' 文件和 Java 字节码是不一样的(Java 字节码是为了便于移植而设计的)。

反编译似乎是唯一的办法。我认为有一些 .pyc 的反编译工具,它们应该能够生成可以在 Jython 上运行的 Python 代码。

2

其实,jython确实有实验性支持运行由cpython生成的pyc文件:jython 2.5内置了一个cpython字节码解释器。

想了解更多关于如何使用它的信息,可以在这里查看

http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html?highlight=pycimport#compilation

撰写回答