微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有一种简单的方法可以使脚本完全模仿python可执行文件的功能,以便在PyInstaller部署中使用?

我想创建一个 Python脚本 – 让我们称之为exe.py – 它的行为与Python可执行文件(python.exe,/usr/bin/python等)基本相同.那是:

> python exe.py运行一个shell
> python exe.py script.py运行Python脚本
> python exe.py script.py a b c使用args运行Python脚本
> python exe.py -c …运行一个命令
> python exe.py -m …运行一个模块
> python exe.py -h打印帮助屏幕
>等……

我当然可以重新实现所有这些,但我想知道是否没有一种编程方式来简单地通过命令行和所有参数并使其行为与python.exe完全相同?与在不重新实现整个交互式shell的情况下运行交互式shell的方式大致相同.

XY问题:我实际在做的是创建一个独立的可执行文件,其中包含某些难以安装的库.我想提供一种方法来运行捆绑到独立可执行文件中的Python版本. PyInstaller将Python脚本作为入口点,并将其转换为可用于其构建的任何目标平台的可执行文件,因此我想制作一个Python脚本,其行为与python可执行文件完全相同,因此可以将其转换为独立的并运行在打包的可执行文件的环境中.

因此,我不能只调用Python可执行文件,因为它不是打包版本的可执行文件.

解决方法

最简单的方法是使用os.system或更现代的子进程运行您的实际脚本.使用例如找到的答案 here. exe.py最简单的例子:

import subprocess
import sys

python_script = sys.argv.pop(0)
call          = [sys.excecutable] + python_script + sys.argv
result        = subprocess.check_call(call)

这样exe.py包装你的python可执行文件.使用argparse轻松读取标志/参数,或编写自己的解析器.

编辑

感谢@Laurent LAPORTE的建议.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐