通过Jython使用.pyc文件
我正在为一个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