【发布时间】:2021-08-14 16:38:48
【问题描述】:
我正在用 KivyMD 和 python 制作一个应用程序,现在我想用 Sphinx 制作一个快速文档。但是每次我在命令行上使用“make html”时都会出现以下错误:
WARNING: autodoc: failed to import module 'test'; the following exception was raised:
Traceback (most recent call last):
File "c:\users\iuryck\anaconda3\lib\site-packages\sphinx\ext\autodoc\importer.py", line 70, in import_module
return importlib.import_module(modname)
File "c:\users\iuryck\anaconda3\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\iuryck\OneDrive\Documents\VSCode\test\test.py", line 1, in <module>
from kivymd.app import MDApp
File "c:\users\iuryck\anaconda3\lib\site-packages\kivymd\app.py", line 62, in <module>
class MDApp(App, FpsMonitoring):
File "c:\users\iuryck\anaconda3\lib\site-packages\kivymd\app.py", line 63, in MDApp
theme_cls = ObjectProperty(ThemeManager())
File "c:\users\iuryck\anaconda3\lib\site-packages\kivymd\theming.py", line 860, in __init__
self.rec_shadow = Atlas(f"{images_path}rec_shadow.atlas")
File "c:\users\iuryck\anaconda3\lib\site-packages\kivy\atlas.py", line 188, in __init__
self._load()
File "c:\users\iuryck\anaconda3\lib\site-packages\kivy\atlas.py", line 216, in _load
ci = CoreImage(subfilename)
File "c:\users\iuryck\anaconda3\lib\site-packages\kivy\core\image\__init__.py", line 561, in __init__
self.filename = arg
File "c:\users\iuryck\anaconda3\lib\site-packages\kivy\core\image\__init__.py", line 754, in _set_filename
image = ImageLoader.load(
File "c:\users\iuryck\anaconda3\lib\site-packages\kivy\core\image\__init__.py", line 463, in load
raise Exception('Unknown <%s> type, no loader found.' % ext)
Exception: Unknown <png> type, no loader found.
如您所见,Sphinx 可以找到 Kivy 模块,也可以找到代码。所以这不是我见过的目录问题或环境问题。
通过安装 KivyMD 和 Sphinx 并使用以下代码可以简单地复制它:
from kivymd.app import MDApp
if __name__ == "__main__":
print('Hello World')
然后对其进行正常的 sphinx 文档处理。
有什么想法吗?
【问题讨论】:
-
我无法复制。在确保安装了 Sphinx 和 KivyMD 后,我运行了您的代码,使用所有默认值运行
sphinx-quickstart,然后运行 make html,它运行良好。这是在带有 Cygwin 的 Win10 上。 -
@MattDMo 您是否安装了任何依赖项或直接 pip install 两者?我也打赢10。也许这是蟒蛇的问题?我确实从 anaconda 终端运行了终端,确保它在同一个环境中。
-
我已经安装了 Sphinx 和 Kivy 以及依赖项,我只需要 pip install KivyMD,它的所有依赖项都已经存在。我不使用 Anaconda,所以我不知道这是否与它有关。我会卸载两者并从头开始重试,强制更新依赖项。
-
另外,再次查看您的错误,我建议您将文件从
test.py重命名为kivymd_test.py或类似的名称。看起来有些东西正在尝试导入test模块,而它正在导入您的文件。 -
@MattDMo 我想你忘记了 sphinx-apidoc -o [OUTPUT_DIR] [INPUT_DIR],否则它不会读取你的代码。我按照你说的做了,也没有错误,但它没有记录代码
标签: python kivy python-sphinx kivymd