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.