2014-02-25 74 views
14

是否有可能建立一个PyInstaller使用pypy作为解释器的单二进制或单目录包?PyPy和PyInstaller

要做什么特别的技巧?

一些替代PyInstaller

如果没有,基本技术原因是什么?

说明为什么/如何pyinstaller不pypy不开箱:(的distutils |)

  • distutils.sysconfig.get_config_h_filename失踪,固定在树干pytinstaller
  • SYSCONFIG(。 _ |)get_makefile_filename失踪,实际上是可选的
  • 尝试在单一的可执行针对libpython2.7.so.1链接,pypy,而不是共享对象
+0

P.S.我也打开二进制修补工具(alin到'LD_PRELOAD',但导致单个库),如果有人可以进行演示:) –

+0

A [list](http://www.freehackers.org/Packaging_a_python_program)替代方案到'PyInstaller' – VivienG

+0

谢谢,@VivienG,遗憾的是没有人声称支持'pypy'。 –

回答

7

我已经尝试了这一点,它失败了,马在某些情况下,因为PyPy只能使用CPython使用的几个子集。 PyInstaller是一个全面的CPython应用程序,因此无法进行通信。

如果您需要改进速度并将代码隐藏起来,您可以尝试使用Cython。我使用了Cython和PyInstaller,我非常喜欢他们的跨平台特性。

当你完成了两者,你可以使用PyInstaller & CPython打包你的应用程序。

+1

好点,虽然pyinstaller上的大部分都是纯粹的python,但在用户应用程序构建时运行,还有'bootloader'。快速检查表明,它主要是针对CPython内部的简单C级钩子的集合,但也有一些复杂的东西,运行时buinding解释器内置类型,按需解包用户的py/pyc/pyo文件。 –

+1

你说得对。我尽可能多地尝试,以便在紧张的时间内交付时避免这些问题。这就是为什么我使用我上面为您概述的方法。 – iChux