加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

是否有一种简单的方法可以使脚本完全模仿python可执行文件的功能

发布时间:2020-12-20 13:15:17 所属栏目:Python 来源:网络整理
导读:我想创建一个 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脚本 p
我想创建一个 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的建议.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读