在 kivymd 的 __init__.py 文件中出现语法错误

Posted

技术标签:

【中文标题】在 kivymd 的 __init__.py 文件中出现语法错误【英文标题】:Getting syntax error in __init__.py file of kivymd 【发布时间】: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"fontsos.sep")
                                                    ^

SyntaxError: 无效语法

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

【问题讨论】:

【参考方案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 是另一回事。

以上是关于在 kivymd 的 __init__.py 文件中出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章

Python __init__.py 作用详解

Python __init__.py 作用详解

在 Python 和 __init__.py 中导入模块

[python][转载]__init__.py使用

python基础:__init__.py和__init__函数的作用

Python中__init__.py文件作用之我见