Мок с подмодулями для ReadTheDocs

Я пытаюсь задокументировать проект Python с помощью ReadTheDocs. Изначально процесс сборки умирал, когда доходил до:

from osgeo import gdal, osr

Я прочитал rtd faq и использовал mock для модуля osgeo, который доставлял мне проблемы. Теперь процесс сборки проходит мимо этого импорта, но задыхается:

from osgeo.gdalconst import * 

С этой довольно бесполезной ошибкой:

RuntimeError: sys.path must be a list of directory names

Я совершенно новичок в использовании mock, но я думаю, что проблема в том, что osgeo является фиктивным модулем и, следовательно, не имеет подмодуля gdalconst. Как мне это обойти? Есть ли способ издеваться над подмодулем?


person jkibele    schedule 15.09.2015    source источник


Ответы (1)


Немного поздно… но я наткнулся на это в поисках решения (используя вложенные модули с mock). Я издевался над модулем и подмодулями следующим образом:

MOCK_MODULES = ['dbs', 'dbs.apis', 'dbs.apis.dbsClient']
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)

где порядок имел значение. Надеюсь, это поможет любому, кто хочет решить эту проблему.

person matz-e    schedule 05.02.2016