【问题标题】:"argument 1 has unexpected type 'str'"“参数 1 具有意外类型 'str'”
【发布时间】:2012-12-12 19:21:49
【问题描述】:

我正在尝试使用 PyKDE,确切地说是PyKDE.kdecore.KStandardDirs。根据documentation 使用两个字符串调用此方法,根据PyQt4 文档,我可以使用标准Python strs 而不是QString。 这不起作用:

>> KStandardDirs.locate()("socket", "foo")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: KStandardDirs.locate(): not enough arguments
>>> KStandardDirs.locate("socket", "foo")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: KStandardDirs.locate(): argument 1 has unexpected type 'str'

我也不能使用QString,因为它似乎不存在:

>>> from PyQt4.QtCore import QString
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name QString
>>> from PyQt4.QtCore import *
>>> QString
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'QString' is not defined

我做错了什么?

【问题讨论】:

    标签: python python-3.x kde4 pykde


    【解决方案1】:

    我怀疑 PyKDE 还没有准备好 Python 3,至少就该错误消息而言;尝试传入一个字节串:

    KStandardDirs.locate(b"socket", "foo")
    

    【讨论】:

    • 就是这样,虽然第二个参数必须是常规字符串:KStandardDirs.locate(b"socket", "foo")
    • @Erik:很酷,很高兴这有效。更新了答案以更好地反映我的想法。
    猜你喜欢
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 2021-12-27
    • 2021-03-18
    • 2021-05-23
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多