相关疑难解决方法(0)

在Python脚本中检查交互式shell

我需要确定调用我的Python脚本的shell是否处于交互模式.如果它处于交互模式,程序应将输出管道输出到较小(1)以便于阅读.如果没有,它应该只是将其输出打印到stdout,以允许它被传送到打印机,文件或不同的寻呼机.

在shell脚本中,我会检查是否定义了提示变量$ PS1,或者在$ - 变量中存储的标志中查找-i选项.

在Python中测试交互性的首选方法是什么?

python shell interactive pipe

25
推荐指数
1
解决办法
8774
查看次数

我们能否知道从Windows或文本终端启动Python脚本?

我使用的是Windows版本的Python.我有一个使用Pyside的Python脚本(没什么复杂的,一种"hello world").

当我单击我的脚本文件或者从命令行启动它时,它会完美地执行,并且我会出现一个GUI.

但是,如果脚本是从文本终端(cmd.exe,cygwin,...)启动的话,我想避免使用GUI.一种自动知道它应该具有GUI输出还是文本输出的脚本.

有一种简单易行的方法吗?我希望能够使用Windows版本的Python(不是Cygwin软件包附带的版本).

当我从文本终端启动脚本时,一种显而易见的方法是添加一种"--no-gui"参数,但我想知道Python(或某些Python库)是否已经为此提供了工具.

此外,我在这台计算机上有一个SSH服务器(Cygwin-base),我可以远距离执行脚本但是没有GUI出现(当然),我没有错误消息.在这种情况下,由于缺少Windows图形支持或者脚本应该将其输出调整为文本终端,因此知道脚本是否失败是非常有趣的.

python windows ssh cygwin

7
推荐指数
1
解决办法
694
查看次数

检测python程序是否通过Windows GUI(双击)vs命令提示符执行

背景
我有一个 Python 3.5 控制台程序通过 pyinstaller 编译成 Windows 可执行文件。

题

  • 当通过命令提示符执行时,我希望我的程序使用提供的任何参数(可能没有)运行。
  • 当通过操作系统的 GUI 执行时(即通过在 Windows 上的 Windows 资源管理器中双击 .exe 等),我希望我的程序提示用户输入。我还需要我的程序在退出前暂停,以便用户可以读取输出。

我如何检测这些不同的场景?

约束

  1. 可执行文件必须能够在准系统(即全新安装)Windows/RedHat 机器上运行。
  2. 该编译可执行文件必须是单个文件,可以不依赖于编译的可执行文件中没有打包的其他文件(pyinstaller允许文件内编译的可执行文件打包)。
  3. 该程序可能依赖于 3rd 方 python 包。

我尝试过的事情

python windows pyinstaller python-3.x

5
推荐指数
1
解决办法
980
查看次数

如何检查Python脚本是否以交互方式启动?

我希望我的脚本有2个行为,一个作为计划任务启动,另一个如果手动启动.我怎样才能测试互动性?

编辑:这可以是一个cron作业,也可以通过Windows批处理文件,通过计划任务启动.

python interactive

2
推荐指数
2
解决办法
851
查看次数

标签 统计

python ×4

interactive ×2

windows ×2

cygwin ×1

pipe ×1

pyinstaller ×1

python-3.x ×1

shell ×1

ssh ×1