【问题标题】:Error in twisted matrix: The usePTY parameter is not supported on Windows扭曲矩阵中的错误:Windows 不支持 usePTY 参数
【发布时间】:2013-06-29 04:26:55
【问题描述】:

我正在尝试运行 PTY 服务器的扭曲文档中的示例代码示例,该服务器在连接时生成一个 shell。

from twisted.internet import reactor, protocol

class FakeTelnet(protocol.Protocol):
    commandToRun = ['/bin/sh'] # could have args too
    dirToRunIn = '/tmp'
    def connectionMade(self):
        print 'connection made'
        self.propro = ProcessProtocol(self)
        reactor.spawnProcess(self.propro, self.commandToRun[0], self.commandToRun, {},
                             self.dirToRunIn, usePTY=1)
    def dataReceived(self, data):
        self.propro.transport.write(data)
    def conectionLost(self, reason):
        print 'connection lost'
        self.propro.tranport.loseConnection()

class ProcessProtocol(protocol.ProcessProtocol):

    def __init__(self, pr):
        self.pr = pr

    def outReceived(self, data):
        self.pr.transport.write(data)

    def processEnded(self, reason):
        print 'protocol conection lost'
        self.pr.transport.loseConnection()

f = protocol.Factory()
f.protocol = FakeTelnet
reactor.listenTCP(5823, f)
reactor.run()

此代码给出错误“Windows 不支持 usePTY 参数”。我希望有一种解决方法或任何可能有助于在 Windows 上运行它的方法。

【问题讨论】:

  • 该示例本身旨在展示使用 Twisted 可以完成的事情。如您所见,您无法在 Windows 上执行此示例想要执行的操作。但是,您实际上有兴趣做的任何事情仍然是可能的。对于您的下一个问题,我建议您询问您的实际兴趣,而不是特定示例的局限性。 :)
  • @Jean-PaulCalderone 谢谢,我基本上想通过它创建一个可以远程登录的 shell。然后这个 shell 可以用作个人 cli,然后可以用来做其他事情
  • @Strommer 如果你想复制 Windows 命令行,那你很不走运。 Windows 使得将终端程序的输出忠实地中继到网络变得非常困难。如果您想编写 自己的 命令行,实现所有您自己的命令,您还可以做一些其他的事情......但您需要打开一个新问题,并解释哪种类型您希望能够运行的命令。

标签: python twisted simulation telnet pty


【解决方案1】:

尝试在 Windows 上运行此代码有些荒谬。作为一个非常基础的级别,/bin/sh 在 Windows 上不可用,因此在那里会失败。

其次,更直接地指向您的问题:usePTY 使用 PTYpseudo-terminal,这是 Windows 上不存在的概念。绝对不支持。

【讨论】:

  • 我对此有点陌生,所以你能告诉我有什么可能的替代方法来创建一个可以通过这个访问的 shell
  • 除了“安装linux”我不知道该告诉你什么。 Windows 上没有 Bourne shell,也没有 PTY。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
相关资源
最近更新 更多