2011-09-08 94 views
1

我已经在Python 3中编写了一个程序,它依靠Python 2.7中的另一个程序来执行某些核心任务。它可以在gnunux上无缝工作,因为大多数发行版已经安装了2.7,我只需要Python 3,而且它都很好。将多版本python应用程序移植到Windows中

但是现在我想将软件包移植到Windows,并且我不知道如何管理它。我有以下问题

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

回答

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默认的文件扩展名应用)

1

如何使用PyInstaller?从来没有使用过自己,但:

PyInstaller是(包)的Python程序转换成独立的可执行文件,在Windows,Linux的程序,和Mac OS X.

http://www.pyinstaller.org/

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

+0

对不起,我有忘记提及我使用动态进口。 PyInstaller似乎不处理这些。 – Evpok

相关问题