是否可以创建同时运行Python和Perl脚本的可执行文件?

问题描述 投票:0回答:1

我正在构建一个Python程序,该程序也从内部运行Perl脚本。有没有一种方法可以创建可执行文件,而我的程序用户不必安装Perl但可以使用Python?

python perl executable
1个回答
0
投票

这里是如何使用pp生成可执行文件的示例(不依赖于正在安装的pp可执行文件。

我正在Ubuntu 20.04上将perlperlbrew 5.30版一起使用。

  • 首次安装perl

    pp
  • 创建测试Perl脚本cpanm PAR::Packer (您可能需要先安装hello.pl):

    Path::Tiny
  • 将其打包为可执行文件:

    use feature qw(say);
    use strict;
    use warnings;
    use Path::Tiny;   # <-- NOTE: non-core module used
    say "Hello world! CWD = ", Path::Tiny->cwd;
    
  • 通过擦除pp -o hello hello.pl ,测试Perl脚本是否独立于perl可执行文件:

    PATH
  • 创建测试Python脚本,$ PATH= ./hello Hello world! CWD = /home/hakon/pp

    t.py
  • 运行Python脚本:

    import os
    os.system("./hello")
    

[我还用Docker容器对此进行了测试,在该容器中,我将编译后的$ python3 t.py Hello world! CWD = /home/hakon/pp 可执行文件传输到该容器,然后从该容器中运行hello

注意:

如果将此可执行文件转移到核心库版本(例如hello)与构建可执行文件的计算机上使用的版本不同的计算机上,则该可执行文件可能无法在目标计算机上运行。有关Python中的类似问题以及对此问题的进一步讨论,请参见glibc

© www.soinside.com 2019 - 2024. All rights reserved.