我有一个Python脚本,通常是从windowspowershell调用的,带有一些命令行参数。我希望以.exe格式分发此脚本,并且我希望基于控制台保留相同的“用户界面”以供使用。在
用户调用myscript.exe来自shell的程序:
myscript.exe argument1 argument2 argument3
程序在同一控制台中执行,并将其输出写入同一控制台。
实际上我有一个myscript.exe程序,它当然从PowerShell获取参数,但是不幸的是,在调用时生成的另一个控制台中执行该程序。在
我怎样才能避免这种行为,并将所有内容都放在同一个控制台中?在
编辑: 我遵循了http://www.py2exe.org/index.cgi/Tutorial的教程。在
为了我的设置.py我使用的生成文件:
console
关键字(提供myscript.py作为列表中唯一的元素)zipfile
关键字(设置为True)options
和optimize: 2
、bundle_files: 1
和{options
关键字。在编译工作正常,程序完成了它应该做的事情。唯一不需要的是打开一个专用控制台,而不是在同一个控制台中执行。在
编辑2:这正是我的设置.py代码。在
^{pr2}$我只需将脚本称为键入:
python setup.py
在Windows Powershell中
编辑3: 这在Windows 8.1上已通过以下方式完成:
最终的可执行文件也在没有安装任何Python的windows10系统上进行了测试;它工作正常,但显示了相同的控制台生成行为。在
希望下面的内容能有所帮助。无论是在标准
Windows Command Prompt
,还是在使用Windows PowerShell
时,这对我都很好:测试.py
设置.py
^{pr2}$它是使用以下方法创建的:
下面是一个执行示例:
如果这仍然生成一个单独的shell,那么PowerShell设置的任何环境变量是否会改变您的结果?在
我已经在
Python 2.7.9 |Anaconda 2.2.0 (32-bit)
和py2exe 0.6.9
中测试过这个。在似乎我自己在this answer的帮助下找到了答案,由this answer链接。这个问题也与这个other问题有关。一个共同的原因产生了两个不同但又相关的问题。在
它是由.exe文件名引起的。切换到不同的文件名,停止UAC请求管理员权限,并在同一shell中执行软件。在
名字是:
但换成
^{pr2}$成功了。在
相关问题 更多 >
编程相关推荐