【问题标题】:Using "konsole" command to run python script使用“konsole”命令运行 python 脚本
【发布时间】:2012-04-12 18:40:56
【问题描述】:

我正在尝试从命令行打开一个 konsole 实例并运行 python 脚本。我正在尝试:

konsole -hold -e  'python -i hello.py'

我得到的行为是一个持久的 konsole 打开,我被放到 python 中,但脚本没有运行。

Python 2.7.2+ (default, Oct  4 2011, 20:03:08) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

我需要做什么才能让 python 脚本在 konsole 窗口中运行?

【问题讨论】:

  • 顺便说一句:(1)文件“hello.py”有一行 print("hello from python") (2) 我的最终目标是在 Kate 中拥有一个“外部工具”运行当前脚本。我正在尝试: cd "%directory" && konsole -e 'python -i "%filename"' 并且使用命令行中的命令得到了与上述相同的行为。
  • 我不使用konsole,但-e参数从xterm熟悉。您似乎使用得当;与xterm 配合使用效果很好。

标签: python konsole


【解决方案1】:

jsbueno 的解决方案是正确的。但是,正如here 所述,您也可以执行类似的操作...

konsole --hold -e /bin/sh -c "python -i hello.py"

附:你需要指定 --workdir(在 -e arg 之前),或者提供 python 脚本的完整路径,如果它并不总是在 konsole 的初始工作目录中。但是,你可能已经知道了。

【讨论】:

  • 您可能需要更仔细地查看 P.S.在我的回答中。如果您为 hello.py 获得了 [Errno 2] No such file or directory,则 konsole 的初始当前工作目录可能与您预期的不同。
  • 天哪,做到了!抱歉没注意P.S.
  • 它在 Kate 中用作外部工具,这是我真正想要完成的。
【解决方案2】:

问题在于“konsole”在-e 开关之后使用参数的方式 - 似乎它只是将它们传递给一个不会将空格分隔符解释为参数分隔符的调用。

但是,如果您不将调用参数放在引号内,它将起作用 - 也就是说,简单地说:

konsole --hold -e  python -i hello.py

(我只是在这里测试过)

【讨论】:

  • 我刚刚从 gnome 终端测试了它,但它失败了。 ariel.balter@galactus:/nfs/concen/usr2/cslab/home/ariel.balter /Documents$ ls *.py hello.py 我在打开的 konsole 窗口中收到以下错误:/usr/bin/python: can 't open file 'hello.py': [Errno 2] 没有这样的文件或目录
最近更新 更多