Python 发送行中的扭曲类型错误

Python 发送行中的扭曲类型错误,python,python-3.x,twisted,rtsp,Python,Python 3.x,Twisted,Rtsp,我使用Twisted和Python3运行RTSP。我正在尝试使用上述配置访问youtube链接的RTSP信息。我必须使用Python3,因为我剩下的代码在Python3中 我正在使用发送命令 self.sendLine('%s %s RTSP/1.0' % (command, path)) 其中Command是descripe,Path是url rtsp://r7---sn-a5m7zu7d.c.youtube.com/CiILENy73wIaGQlFHOtrHD-E8RMYDSANFEgGU

我使用Twisted和Python3运行RTSP。我正在尝试使用上述配置访问youtube链接的RTSP信息。我必须使用Python3,因为我剩下的代码在Python3中

我正在使用发送命令

self.sendLine('%s %s RTSP/1.0' % (command, path))
其中Command是descripe,Path是url

rtsp://r7---sn-a5m7zu7d.c.youtube.com/CiILENy73wIaGQlFHOtrHD-E8RMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp
我发现以下语句有错误:

File "/home/akshay_v/valuconnex-python/twisted/protocols/basic.py", line 637, in sendLine
        return self.transport.write(str(line + self.delimiter))
    builtins.TypeError: Can't convert 'bytes' object to str implicitly

self.delimiter = b'\r\n'
line is the *str* passed as argument in above statement.

如何使其工作?

看起来python RTSP还没有移植到python 3。试着在Python2.7上运行它(或者甚至像它的自述文件所建议的那样,在Python2.6上运行)。Python3与Python2不兼容,未移植到Python2的软件将无法工作。

正如Jean Paul所说,不能使用Python3运行PythonRTSP

如果您对此故障的确切性质感到好奇,那么问题在于
transport.write
接受一个
bytes
对象。在Python2上,它是与
str
相同的类型,在Python3上,它是它自己的类型。Python 2上与Python 3的
str
相似的类型是
unicode
,您无法将
unicode
写入套接字,因此无法将其传递到
传输。写入


但是,在
twisted.protocols.basic
中显示的代码行看起来像是twisted的错误修改版本;我找不到Twisted的任何版本在那个位置调用过
str
。您是如何获得此版本的Twisted的,您是否尝试升级到最新版本(截至本文撰写之时为14.0.0)?

它位于所使用的库中。当我尝试将其修改为字符串时,错误显示“数据不能是unicode”为什么不使用
RTSPClient.sendCommand()
而不是复制粘贴函数实际使用的代码RTSP.sendCommand()使用twisted/protocols/basic.py的sendLine()。上面错误中的一行是sendCommand()传递的参数。谢谢,已更新Twisted(到14.0.0)。在使用
sendLine
命令之前,将字符串转换为字节。能够前进。谢谢你的详细回答。