首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扭曲TypeError在sendLine中的应用

扭曲TypeError在sendLine中的应用
EN

Stack Overflow用户
提问于 2014-05-27 05:40:35
回答 2查看 1.4K关注 0票数 1

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

我正在发送命令

代码语言:javascript
复制
self.sendLine('%s %s RTSP/1.0' % (command, path))

描述命令的位置,路径是url

代码语言:javascript
复制
rtsp://r7---sn-a5m7zu7d.c.youtube.com/CiILENy73wIaGQlFHOtrHD-E8RMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp

下面的陈述出错了:

代码语言:javascript
复制
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.

怎样才能让这件事奏效?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-27 18:22:03

正如Jean所说,您不能使用Python 3运行python。

如果您对此失败的确切性质感到好奇,那么问题是transport.write接受一个bytes对象。在Python2上,它是与str相同的类型,在Python3上是它自己的类型。在Python2上与Python3的str类似的类型是unicode,您不能将unicode写到套接字,所以不能将它传递给transport.write

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

票数 2
EN

Stack Overflow用户

发布于 2014-05-27 11:58:26

似乎还没有将Python移植到Python 3。尝试在Python2.7上运行它(或者像自述的那样,甚至可以运行Python2.6)。Python 3与Python 2不兼容,没有移植到它的软件将无法工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23881783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档