【问题标题】:Getting syntax error in __init__.py file of kivymd在 kivymd 的 __init__.py 文件中出现语法错误
【发布时间】:2021-08-19 16:17:18
【问题描述】:

我下载了 kivymd 和 kivy 模块,并在 python 应用程序中使用它。当我运行我的代码时,会出现此错误:

 Traceback (most recent call last):
   File "c:/Users/SA/Desktop/mhtiq-test/AI_PROCTOR-FYP-/main.py", line 10, in <module>
     from kivymd.app import MDApp
   File "C:\Users\SA\AppData\Local\Programs\Python\Python35\lib\site-packages\kivymd\__init__.py", line 30
     fonts_path = os.path.join(path, f"fonts{os.sep}")
                                                    ^

SyntaxError: 无效语法

谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: python python-3.x kivy kivymd


    【解决方案1】:

    在 Python 3.6 中添加了 f 字符串;您正在使用 Python 3.5。您需要升级您的 Python 安装才能使用此代码。

    要使其与 Python 3.5 兼容,请使用 format 方法:

    fonts_path = os.path.join(path, "fonts{}".format(os.sep))
    

    请注意,os.path.join 似乎具体使用了/,而不是os.sep,因此这样做可能会产生某种混合路径。否则,你也可以考虑

    fonts_path = os.path.join(path, "fonts", "")
    

    os.path.join 自己产生尾随分隔符。

    pathlib 模块也可能是一个选项,因为它是在 Python 3.4 中引入的。

    【讨论】:

    • 或者你可以使用future-fstrings,它是 fstrings 到 python 的反向移植
    • 嗯,我对使用像这样将自身注入解析过程的东西持谨慎态度。向后移植库例程是一回事。向后移植 syntax 是另一回事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 2020-03-29
    • 2015-12-09
    • 1970-01-01
    • 2015-08-19
    • 2023-03-04
    相关资源
    最近更新 更多