【问题标题】:Run .exe from a python script called by mercurial in cmd shell从 cmd shell 中的 mercurial 调用的 python 脚本运行 .exe
【发布时间】:2014-07-08 02:03:41
【问题描述】:

我已将 python (2.7) 脚本绑定到 mercurial 中的提交。在这个脚本中,一个 .exe 被调用(通过 subprocess 模块),它之前是通过 cx_freeze 生成的。这个 .exe 基本上会打开一个用于接收用户输入的 cmd 提示符。

当我通过 hg 工作台运行提交时,一切都按预期运行...... Python 脚本运行、调用可执行文件并执行其操作,并且提交顺利进行。

但是,当在初始 cmd 提示符下通过“hg commit”运行提交时,此设置的可执行部分永远不会出现。我知道 python 脚本仍在运行。从未显示/返回任何错误。

我是否遗漏了一些明显的东西,有没有一种简单的方法可以让这个可执行文件正常运行,即使在 cmd 提示符下从提交调用时也是如此?

【问题讨论】:

    标签: python mercurial cmd executable


    【解决方案1】:

    所以你有 mercurial 调用一个运行 python 脚本的钩子,该脚本启动一个可执行文件,该可执行文件是一个编译为 exe 的 python 脚本?很可能 3 层深层脚本在没有“终端”(无头)的情况下运行,但听起来如果你解开其中的一些层,你可能会更好。

    【讨论】:

    • 我宁愿不删除层,因为必须移植几千行代码,包括模块(因为可执行文件是用不同版本的 Python 编译的。)你是对的关于无头运行的脚本,所以我想我希望有一种方法可以让脚本在自己的终端上运行。
    • 是的,那您就进入了特定于 Windows 的技巧。您可以尝试将钩子设置为批处理或 powershell 脚本,看看是否有办法使用控制终端启动 exe,否则我无济于事。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2020-01-01
    相关资源
    最近更新 更多