gpt4 book ai didi

python - 如何在不生成新控制台窗口的情况下执行控制台 EXE?

转载 作者:可可西里 更新时间:2023-11-01 11:49:53 25 4
gpt4 key购买 nike

我有一个 Python 脚本,通常使用一些命令行参数从 Windows PowerShell 调用。我想以 .exe 格式分发此脚本,并且我想保留相同的基于控制台的“用户界面”以供使用。

  1. 用户打开 Windows Powershell。
  2. 用户从shell调用myscript.exe程序:

    myscript.exe argument1 argument2 argument3
  3. 程序在同一个控制台中执行,并将其输出写入同一个控制台

实际上我有一个 myscript.exe 程序,它当然从 PowerShell 获取参数,但不幸的是,它在调用时生成的另一个控制台中执行该程序。

如何避免这种行为并将所有内容都放在同一个控制台中?

编辑:我已按照 http://www.py2exe.org/index.cgi/Tutorial 上的教程进行操作.

对于我使用的 setup.py 构建文件:

  • console关键字(提供 myscript.py 作为列表中的唯一元素)
  • zipfile关键字(设置为真)
  • options关键词 optimize: 2 , bundle_files: 1 , 和 compressed: True .

编译工作正常,程序完成了它应该做的事情。唯一不受欢迎的是打开一个专用的控制台,而不是在同一个控制台中执行。

EDIT2:这正是我的 setup.py 代码。

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
options = {'py2exe': {'bundle_files': 1, 'compressed': True, 'optimize': 2}},
console = [{'script': "myscript.py"}],
zipfile = None,
)

我只是调用脚本输入:

python setup.py 

在 Windows Powershell 中

编辑 3:这是在 Windows 8.1 上完成的:

  • python 3.4.2
  • py2exe 0.9.2.2
  • Powershell 4.0

最终的可执行文件也在未安装任何 Python 的 Windows 10 系统上进行了测试;它有效,但显示出相同的控制台生成行为。

最佳答案

看来我已经在this answer的帮助下自己找到了答案, 链接 this answer .该问题也与此有关 other题。一个共同的原因产生了两个不同但相关的问题。

这是由.exe文件名引起的。切换到不同的文件名,停止 UAC 请求管理员权限并在同一 shell 中执行软件。

名字是:

<project_name_under_NDA>_update.exe

但是切换到

try.exe

成功了。

关于python - 如何在不生成新控制台窗口的情况下执行控制台 EXE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com