我有一个用 Python 编写的 Raspberry Pi 项目,它使用 RPi.GPIO 模块。代码上的所有工作都是在 Windows 机器上完成的,其中 RPi.GPIO 不会安装,每次我尝试运行 autodoc 时,它都会崩溃,说它无法导入 RPi.GPIO。
D:\cube\docs\ledcube.rst:4: WARNING: autodoc: failed to import module u'ledcube'
; the following exception was raised:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\sphinx-1.2b1-py2.7.egg\sphinx\ext\autodoc.
py", line 326, in import_object
__import__(self.modname)
File "D:\cube\ledcube.py", line 2, in <module>
import RPi.GPIO as GPIO
ImportError: No module named RPi.GPIO
有什么办法解决这个问题吗?
无法告诉 Sphinx 排除某些导入。使用 autodoc 时,所有记录的模块都必须可以完全导入。
您也许可以通过执行一些操作来解决该问题mocking https://pypi.python.org/pypi/mock/1.0.1。这是一篇文章,描述了与您的问题非常相似的问题的解决方案:http://blog.rtwilson.com/how-to-make-your-sphinx-documentation-compile-with-readthedocs-when-youre-using-numpy-and-scipy/ http://blog.rtwilson.com/how-to-make-your-sphinx-documentation-compile-with-readthedocs-when-youre-using-numpy-and-scipy/。这是一个小代码示例(旨在添加到conf.py):
import mock
MOCK_MODULES = ['numpy', 'matplotlib', 'matplotlib.pyplot']
for mod_name in MOCK_MODULES:
sys.modules[mod_name] = mock.Mock()
您可能需要安装 python-mock 才能使上述功能正常工作:sudo apt-get install python-mock
Update
从 Sphinx 1.3 开始,设置模拟变得更加容易。只需将要模拟的模块添加到autodoc_mock_imports http://www.sphinx-doc.org/en/master/ext/autodoc.html#confval-autodoc_mock_imports配置值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)