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

如何执行控制台EXEs而不产生新的控制台窗口?

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

用户打开Windows Powershell。

用户从shell调用myscript.exe程序:

myscript.exe argument1 argument2 argument3

该程序在相同的控制台中执行,并将其输出写入同一控制台 。

其实我有一个myscript.exe程序,这当然从PowerShell获得参数,但不幸的是,执行程序在另一个调用产生的控制台。

Windows 10registry不能被代码删除

为什么在一段时间之后,Windows控制台会丢失命令行历史logging(向上箭头)?

我如何使我的function粘性重载iostream提取操作符

如何redirectcout到控制台在Linux?

如何在“top”linux命令中执行控制台input?

我怎样才能避免这种行为,并保持在同一个控制台的一切?

编辑:我已经按照http://www.py2exe.org/index.cgi/Tutorial上的教程。

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

console关键字(提供myscript.py作为列表​​中的唯一元素)

zipfile关键字(设置为True)

options关键字optimize: 2 , bundle_files: 1 , compressed: True 。

编译工作正常,程序做它应该做的事情。 唯一不希望的是打开一个专用的控制台,而不是在同一个控制台上执行。

编辑2:这正是我的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,)

我只是打电话给脚本input:

python setup.py

在Windows PowerShell中

编辑3:这已在Windows 8.1上完成:

Python 3.4.2

py2exe 0.9.2.2

Powershell 4.0

最终的可执行文件也在没有安装Python的Windows 10系统上进行过testing。 它的工作,但显示相同的控制台产卵行为。

Bashrecursion地在每个目录上执行一个命令

什么是打击控制台closures问题的最佳做法?

不在控制台应用程序的Windows GetMessage循环中

如何从Windows机器上的命令提示符运行PHP程序?

如何检测文件夹是否为空(Windowsbatch file)?

看来,我已经找到了答案,在这个答案的帮助下,通过这个答案 。 这个问题也与这个问题有关。 一个常见的原因产生了两个不同但相关的问题

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

名字是:

<project_name_under_NDA>_update.exe

但切换到

try.exe

有效。

希望以下可能会有所帮助。 在标准的Windows Command Prompt ,使用Windows PowerShell ,这对我来说都很好:

test.py

import sys print "Arguments passed:" for arg in sys.argv: print ' {}'.format(arg)

setup.py

from distutils.core import setup import py2exe setup( zipfile = None,options = {"py2exe": {"bundle_files": 1}},console = [r'test.py'])

它是使用以下创建的:

python setup.py py2exe

这是一个示例执行:

PS E:test> .test.exe hello world Arguments passed: E:testtest.exe hello world

如果这仍然产生一个单独的shell,有没有可能会改变你的结果的PowerShell设置的任何环境变量?

我已经在Python 2.7.9 |Anaconda 2.2.0 (32-bit)和py2exe 0.6.9测试了这个。

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

相关推荐