Python readthedocs, как выполнить требование sip (или pyqt)

Я хочу опубликовать документацию моего проекта https://bitbucket.org/oaltun/opn в readthedocs.org.

Сборка не удалась. В журнале https://readthedocs.org/builds/opn/2247789/ показаны разные ошибки, но первая - "нет модуля с именем sip".

SIP необходим PyQT, который необходим для проекта.

Обычно в такой ситуации, насколько я понимаю, вы добавляете отсутствующий пакет в ваш setup.py и проверяете опцию readthedocs.org, чтобы создать virtualenv. Я делаю флажок, чтобы создать virtualenv. Но я не могу добавить sip или pyqt в setup.py.

Проблема в том, что pyqt & sip не использует setuptools, поэтому не может быть установлен pip. Таким образом, вы не можете добавить их в setup.py (это не удается даже на моем локальном компьютере).

В моем локальном окружении я устанавливаю pyqt с (ana) conda. Но я думаю, что readthedocs.org использует pip для вызова зависимостей.

Итак, как мне сделать, чтобы мой virtualenv включал глоток?

1 ответ

Хитрость заключается в том, чтобы издеваться над этими интерфейсами:

import mock 
MOCK_MODULES = ['sip', 'PyQt4', 'PyQt4.QtGui']
sys.modules.update((mod_name, mock.MagicMock()) for mod_name in MOCK_MODULES)

Обратите внимание, что вы также должны смоделировать корневой пакет 'PyQt4' или получите ImportError.

Другие вопросы по тегам