【问题标题】:Run python programs without opening a separate shell在不打开单独的 shell 的情况下运行 python 程序
【发布时间】:2012-10-22 15:56:17
【问题描述】:

在 powershell 中,当我运行 python 程序时:

> python hello.py

程序运行并直接在我正在使用的 powershell 窗口中打印任何输出。但是当我尝试在不显式调用 python 的情况下执行此操作时:

> hello.py

它会打开一个单独的窗口。我该如何解决这个问题,使它的行为与我显式调用 python 时的行为相同?

【问题讨论】:

  • Powershell 就像双击文件夹中的文件一样工作。写“python”是不是很麻烦?
  • @JBernardo:不,输入它并不麻烦。但这无关紧要。我正在努力设置我的环境,以便我可以使用多种语言中的任何一种编写程序/脚本,并且我可以在不知道它们是用什么语言编写的情况下执行它们。这是其中的步骤之一那个目标。
  • @BenjaminLindley 好吧,下一个建议:使用 Linux。 ;-)
  • @Keith:我也尝试了大约一年半。它还有许多其他问题,我厌倦了处理。
  • @JBernardo: pylauncher 添加了 shebang 支持。它与 Python 3.3 一起安装。

标签: python powershell


【解决方案1】:

如果将.PY 添加到PATHEXT 环境变量中,您应该能够在当前控制台中运行.\hello.py 或仅运行.\hello。否则,它将ShellExecute 关联的Python.File 命令(检查ftype Python.File)启动一个新控制台。我通过临时修改环境变量检查了这一点:

$env:pathext = $env:pathext + ";.PY"

【讨论】:

  • 谢谢。这也回答了我的下一个问题,即如何在不输入扩展名的情况下让它执行 python 程序。
  • 您的下一个问题已在Making Python scripts run on Windows without specifying “.py” extension 中得到解答。我很确定这个问题也已经得到解答。
  • @PiotrDobrogost: You're right;我应该在回答之前搜索 Stack Exchange。但是,要清楚的是,它不会像该问题所述打开CMD 窗口。 python.exe 有一个附加的控制台。如果它在新窗口中运行,你会得到一个新的控制台,但不是一个新的 cmd.exe shell。
猜你喜欢
  • 2018-11-28
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 2013-09-07
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多