cygwin运行命令而不是cmd python

时间:2012-11-23 13:11:48

标签: python cygwin cmd subprocess

我有一个python GUI,我想运行一个使用windows cmd无法执行的shell命令 我已经安装了cygwin,我想知道如何运行cygwin而不是windows cmd。我想使用子进程并获取.sh文件的结果 但我的代码

subprocess.check_output("./listChains.sh < 2p31protein.pdb")

这将在cmd中运行它并且由于Windows无法识别它,它将无法工作,所以如何让它在cygwin而不是cmd中运行

2 个答案:

答案 0 :(得分:2)

执行cygwin shell(例如bash)并让它运行你的脚本,而不是直接运行你的脚本:

subprocess.check_output("C:/cygwin/bin/bash.exe ./listChains.sh < 2p31protein.pdb")

或者,将.sh文件类型扩展名与bash.exe打开。

答案 1 :(得分:1)

使用python子进程运行cygwin可执行文件要求带有cygwin1.dll的./bin目录位于Windows路径上。 cygwin1.dll将cygwin可执行文件暴露给Windows,允许它们在Windows命令行中运行并由Python子进程调用。