当前位置: 首页 > 面试题库 >

将Python编译为机器代码是否可行?

壤驷凯
2023-03-14
问题内容

将Python(可能通过中间C表示形式)编译为机器代码的可行性如何?

大概需要链接到Python运行时库,并且Python标准库中Python本身的任何部分也需要进行编译(并链接)。

另外,如果您想对表达式进行动态求值,则需要捆绑Python解释器,但是也许不允许这样做的Python子集仍然有用。

它会提供任何速度和/或内存使用优势吗?大概可以省去Python解释器的启动时间(尽管共享库在启动时仍需要加载)。


问题答案:

尝试使用ShedSkin从Python到C
的编译器,但这远非完美。如果仅需要加速,则还有Psyco-Python
JIT。但是恕我直言,这不值得付出努力。对于速度至关重要的部分,最好的解决方案是将它们编写为C / C
扩展。



 类似资料:
  • 我正在使用java 11处理一些依赖项并编译到旧版本。我将一个依赖项迁移到Java11并正常工作,但我们仍然必须在Java8上运行Tomcat 7或8。是否可以使用标志来编译使用,或并在8上运行的代码? 发布标志表明应该可以: --发布版本 针对特定 VM 版本的公共、受支持和记录的 API 进行编译。支持的版本目标为 6、7、8 和 9。 这个项目是一个依赖项,独立运行在SprinBoot2.1

  • 问题内容: 为什么要编译Python脚本?您可以直接从.py文件运行它们,并且效果很好,那么在性能上有什么优势吗? 我还注意到,我的应用程序中的某些文件被编译为.pyc,而另一些则没有,为什么? 问题答案: 它被编译为字节码,可以更快,更快速地使用。 无法编译某些文件的原因是,每次运行脚本时都会重新编译与之一起调用的主脚本。所有导入的脚本将被编译并存储在磁盘上。 Ben Blank的 重要补充:

  • 问题内容: 有什么方法可以反编译dll和/或.pyd文件以提取用Python编写的源代码? 提前致谢 问题答案: 我假设.pyd / .dll文件是在Cython中创建的,而不是在Python中创建的? 无论如何,通常是不可能的,除非有专门针对文件最初使用的语言设计的反编译器。尽管我了解C,C ++,Delphi,.NET和其他一些反编译器,但我还没有听说过Cython反编译器。 当然,Cytho

  • 问题内容: 如何将Android DEX(VM字节码)文件反编译为相应的Java源代码? 问题答案: It’s easy 获取以下工具: 1)dex2jar将dex文件转换为jar文件 2)jd-gui查看jar中的java文件 由于dex2jar进行了一些优化,因此源代码具有很高的可读性。 Procedure:: 这是有关如何反编译的过程: 步骤1: 将中的转换为 注1:在Windows计算机上

  • 问题内容: 当我使用React Native开发混合应用程序时。从React Native代码创建Android- App时,我编写的JavaScript代码会转换为Dalvik / ART Runtime的Java代码还是Java字节代码?还是只是将UI组件编译为本机UI组件?还是像Fetch API这样的库将JavaScript代码编译为Java代码或Java字节码? 问题答案: 基本上,您编

  • 至少在GCC中,如果我们提供生成汇编代码的选项,编译器会通过创建一个包含汇编代码的文件来服从。但是,当我们简单地运行命令而没有任何选项时,它不会在内部生成汇编代码吗? 如果是,那么为什么它需要首先生成一个汇编代码,然后将其翻译成机器语言?

  • 问题内容: 我有一个纯Python脚本,我想分发给具有未知Python配置的系统。因此,我想将Python代码编译为独立的可执行文件。 我奔波没有问题。那我跑 哪里给 并给 通过这种方式,我可以获得一个动态链接的可执行文件,该文件可以正常运行。产量 现在,我尝试将选项添加到gcc,但这会导致错误: 我检查了ldd给定的所有共享库是否也都安装为静态库。 那么,这与python3-config提供的选

  • 我最近在部署到我们的共享主机时遇到了问题。从 Visual Studio 通过 Web 部署进行部署时,99% 的时间我在登录后在登录页面或主页上收到此错误。有时我可能会点击几下不同的部分,然后它就会击中。它通常会在几分钟到90分钟后消失。 运行Windows Server 2012 R2 Standard、IIS8和.NET 4.5的Web主机。 Web主机建议我需要使用Visual Studi