在Python中,字符串序列到底是什么?(或者是油嘴滑舌的虫子?)
我知道这个问题看起来很愚蠢,但我真的搞不懂。我天真地认为字符串序列就是字符串列表。但是,这一点失败了:在Python中,字符串序列到底是什么?(或者是油嘴滑舌的虫子?),python,python-2.7,glib,Python,Python 2.7,Glib,我知道这个问题看起来很愚蠢,但我真的搞不懂。我天真地认为字符串序列就是字符串列表。但是,这一点失败了: (pid, stdin, stdout, stderr) = glib.spawn_async( argv=["foo", "bar"], envp=None, flags=glib.SPAWN_SEARCH_PATH + glib.SPAWN_CHILD_INHERITS_STDIN, standard_input=True, standard_out
(pid, stdin, stdout, stderr) = glib.spawn_async(
argv=["foo", "bar"],
envp=None,
flags=glib.SPAWN_SEARCH_PATH + glib.SPAWN_CHILD_INHERITS_STDIN,
standard_input=True,
standard_output=True,
standard_error=True)
由于以下错误而失败:
TypeError: glib.spawn_async: first argument must be a sequence of strings
我尝试了一个元组,但没有更好的结果
如果不是列表,那么什么是字符串序列?我认为可能存在Python-Glib缺陷,但我不相信这种缺陷真的存在。我在网上发现了一条类似的消息,但我不知道这是一个错误,还是一个错误
--编辑--
使用这个更短的样本,结果相同:
(pid, stdin, stdout, stderr) = glib.spawn_async(argv=["foo", "bar"])
根据海报要求,以下是完整的跟踪:
Traceback (most recent call last):
File "<...>/test.py", line 92, in <module>
run()
File "<...>/test.py", line 62, in run
standard_error=True)
TypeError: glib.spawn_async: first argument must be a sequence of strings
回溯(最近一次呼叫最后一次):
文件“/test.py”,第92行,在
运行()
文件“/test.py”,第62行,运行中
标准(错误=真)
TypeError:glib.spawn\u async:第一个参数必须是字符串序列
总结对该问题的评论:
,请通过b“foo”
语法生成字节文本李>
envp
参数似乎与其文档有所不同。不要向它提供任何信息。如果你不打算使用它,就不要提供那个关键词/位置
嗯,很有趣。。。你百分之百确定就是那条线吗?字符串列表肯定是字符串序列扫描显示完整的回溯?当我粘贴代码样本时,我得到:TypeError:glib.spawn\u async:第二个参数必须是字符串序列
,这与您的错误类似,但在一个重要方面有所不同。你确定你的密码不是说秒吗。根据我发现的,envp=None
是有效的第二个参数。您使用的是哪个版本?@user2357112和@kwatford:将示例缩短到更短的(pid、stdin、stdout、stderr)=glib.spawn_async(argv=[“foo”、“bar]”)给出了相同的结果。我在Ubuntu12.04上运行Python 2.7.3,如果我理解正确的话,关于Unicode字符串的提示适用于所有Glib函数。在某些地方,您可能可以使用Unicode,但它可能要求您将其编码为Glib/gobject/任何期望的编码方式(通过foo.encode('utf-8')
或类似方式)。我对这些库了解不够,无法告诉您它们对unicode的支持。