将多版本python应用程序移植到Windows

时间:2011-09-08 14:29:51

标签: python windows

我在Python 3中编写了一个程序,它依赖于Python 2.7中的另一个程序来完成一些核心任务。它在gnunux上无缝工作,因为大多数发行版已经安装了2.7,我只需要Python 3,这一切都很好。

但现在我想将捆绑包移植到Windows,我不知道如何管理它。我有以下问题

我有我使用的所有内容的源代码,并且所有内容都在libre许可下,因此我没有编译到PE或将2.7脚本移植到3的问题,但这将是一项繁琐的工作。到目前为止,我发现的唯一解决方案是将所有内容移植到Python 3.你能想到另一个吗?

2 个答案:

答案 0 :(得分:1)

如何使用PyInstaller?从来没有用过它,但是:

  

PyInstaller是一个程序,可以在Windows,Linux和Mac OS X下将Python程序转换(打包)成独立的可执行文件。

http://www.pyinstaller.org/

因此,您可以将程序转换为可执行文件,然后从另一个内部调用一个程序。

答案 1 :(得分:1)

  • 最近的Python Launcher for Windows(另请参阅PEP 397)可用于模拟shebang /版本行为。但是,如果你想这样做,当然必须在系统上安装不同版本的python(以及启动器,注册为.py文件的默认应用程序)
  • 像PyInstaller和py2exe这样的工具可以捆绑动态导入的模块,但不能单独发现它们:你必须自己指定它们。我认为这些工具的问题在于它们不能同时使用不同版本的Python创建应用程序。

所以我猜你还需要在目标系统上安装python 2.7和python 3,或者为2.7和3脚本创建单独的exe,并改变你的子进程调用来调用它们。 (你可以用你自己的python安装捆绑而不是使用标准的系统范围的python安装,但你仍然需要 更改您的子进程调用,而不是依赖于Windows默认应用程序的文件扩展名