我有一个python GUI,我想运行一个使用windows cmd无法执行的shell命令 我已经安装了cygwin,我想知道如何运行cygwin而不是windows cmd。我想使用子进程并获取.sh文件的结果 但我的代码
subprocess.check_output("./listChains.sh < 2p31protein.pdb")
这将在cmd中运行它并且由于Windows无法识别它,它将无法工作,所以如何让它在cygwin而不是cmd中运行
答案 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子进程调用。