在 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 文件中出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章