将Cygwin导入Python程序

2024-06-09 19:19:56 发布

您现在位置:Python中文网/ 问答频道 /正文

作为一个对管道和Python的新手,我最近遇到了一个问题,试图用Python的子进程moudle将Cygwin的stdin&stdout导入Python程序。 例如,我选择了一个简单的程序:

cygwin = subprocess.Popen('PathToCygwin',shell=False,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
cygwin.stdin.write('ssh')

在那之后,我得到了一个错误:

^{pr2}$

我做错什么了?在


Tags: 程序管道进程stdinstdoutshellsubprocesspopen
1条回答
网友
1楼 · 发布于 2024-06-09 19:19:56

好吧,你的文字代码行不通。您正在传递一个值为'PathToCygwin'的字符串,但这不会起任何作用。我认为你传递的是一个更好的字符串,但你没有告诉我们什么。在

我想你的路径可能是问题所在。如果你不把这条路弄好,它就行不通了。在

这是我的测试代码。我在Cygwin版本的Python下运行了这个,所以我使用了Cygwin样式的路径:而不是r"C:\cygwin\bin\bash.exe"我使用了/cygdrive/c路径:

>>> cpath = "/cygdrive/c/cygwin/bin/bash.exe"
>>> cygwin = subprocess.Popen(cpath,shell=False,stdin=subprocess.PIPE,stdout=su
bprocess.PIPE)
>>> cygwin.stdin.write("ssh")
>>>

再次,我在Cygwin编译的Python版本中运行了这个。如果使用的是Windows原生版本的Python,则可能需要使用C:路径。在

如果你还在使用Python的代码,请告诉我们你到底在使用哪个版本的代码?在

相关问题 更多 >