便携式python应用程序在远程系统上运行

时间:2017-10-30 06:51:55

标签: python portability

我需要生成一个独立的便携式python应用程序并在远程系统上运行,即使没有安装python解释器或版本也不同。

目标是将python脚本打包为应用程序,将其转移到远程系统,并将其作为独立应用程序运行,无任何依赖性。

我们在Python世界中有这样的方式吗?以前有人做过类似的事吗?

2 个答案:

答案 0 :(得分:2)

冻结是游戏的名称。

以下是使用PyInstaller的示例。

示例脚本test.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from functools import reduce


my_list = list('1234567890')

my_list = list(map(lambda x: int(x), my_list))
my_sum = reduce(lambda x, y: x + y, my_list)

print("The sum of %s is %d" % (list(my_list), my_sum))

要从脚本创建二进制文件,请安装PyInstaller并在您的代码上运行它:

$ pyinstaller -F test.py

完成后,您应该在./dist中找到独立的二进制文件。当你运行它时,它的行为就像任何其他程序一样:

$ ./dist/test
The sum of [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] is 45

有关详细信息,请查看here

答案 1 :(得分:0)

由于您提到的可移植性甚至比Python已提供的更多,因为您提到Python解释器可能不在远程系统上,因此最适合您的方法是将其编译为Java应用程序。您可以按照以下步骤操作。

  1. 从jython.org安装JDK和VisAD-Jython(python到jar编译器)
  2. 在VisAD-Jython安装目录中创建一个批处理文件(或脚本)以调用jythonc编译器。下面是一个示例脚本。让我们将其命名为abc.bat

    @echo off
    set JYTHON_PATH=.
    set CLASSPATH=.
    %JYTHON_PATH%\jre\bin\java.exe -mx256m "-Dpython.home=%JYTHON_PATH%\\" "-Dpython .path=%JYTHON_PATH%.\\" -cp "%JYTHON_PATH%\\jython.jar;%JYTHON_PATH%\\visad.jar; %JYTHON_PATH%\\;." org.python.util.jython "%JYTHON_PATH%\Tools\jythonc\jythonc.p y " --compiler javac  %1 %2 %3 %4 %5 %6 %7 %8 %9
    
  3. 然后编译你的.py脚本,如下所示:

    abc --core --jar new.jar new.py
    
  4. 现在,您可以使用Java在任何地方移植和运行它。

相关问题