模拟 ReadTheDocs 的子模块
Mock with submodules for ReadTheDocs
我正在尝试使用 ReadTheDocs 记录一个 Python 项目。最初,构建过程会在到达以下位置时终止:
from osgeo import gdal, osr
我已经阅读了 rtd faq 并对给我带来麻烦的 osgeo 模块使用了 mock。现在构建过程通过了导入但阻塞了:
from osgeo.gdalconst import *
由于这个无用的错误:
RuntimeError: sys.path must be a list of directory names
我对使用模拟完全陌生,但我认为问题在于 osgeo
是一个模拟模块,因此没有子模块 gdalconst
。我该如何解决这个问题?还有办法模拟子模块吗?
有点晚了……但我 运行 正在寻找解决方案(使用 mock
的嵌套模块)。我像这样模拟模块和子模块:
MOCK_MODULES = ['dbs', 'dbs.apis', 'dbs.apis.dbsClient']
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)
顺序很重要。希望这可以帮助其他任何想解决这个问题的人。
我正在尝试使用 ReadTheDocs 记录一个 Python 项目。最初,构建过程会在到达以下位置时终止:
from osgeo import gdal, osr
我已经阅读了 rtd faq 并对给我带来麻烦的 osgeo 模块使用了 mock。现在构建过程通过了导入但阻塞了:
from osgeo.gdalconst import *
由于这个无用的错误:
RuntimeError: sys.path must be a list of directory names
我对使用模拟完全陌生,但我认为问题在于 osgeo
是一个模拟模块,因此没有子模块 gdalconst
。我该如何解决这个问题?还有办法模拟子模块吗?
有点晚了……但我 运行 正在寻找解决方案(使用 mock
的嵌套模块)。我像这样模拟模块和子模块:
MOCK_MODULES = ['dbs', 'dbs.apis', 'dbs.apis.dbsClient']
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)
顺序很重要。希望这可以帮助其他任何想解决这个问题的人。