2015-01-27 16 views
5

Ich möchte die Dokumentation meines Projekts https://bitbucket.org/oaltun/opn in readthedocs.org veröffentlichen.python readthedocs wie man die Anforderung sip (oder pyqt)

Der Build schlägt fehl. Es gibt verschiedene Fehler im Protokoll https://readthedocs.org/builds/opn/2247789/, aber die erste ist "kein Modul namens sip".

sip wird von pyqt benötigt, was vom Projekt benötigt wird.

Normalerweise in dieser Art von Situation, so weit ich verstehe, würden Sie fehlende Paket zu Ihrem setup.py hinzufügen, und überprüfen Sie die readthedocs.org Option, um eine virtualenv zu erstellen. Ich überprüfe die Box, um ein virtualenv zu erstellen. Aber ich kann sip oder pyqt nicht zu setup.py hinzufügen.

Das Problem ist pyqt & sip verwendet keine setuptools, kann also nicht von pip installiert werden. Sie können sie also nicht zu setup.py hinzufügen (dies schlägt sogar auf meinem lokalen Rechner fehl).

In meiner lokalen Umgebung installiere ich pyqt mit (ana) Conda. Aber ich denke, readthedocs.org verwendet pip zum Aufrufen der Abhängigkeiten.

Also, wie kann ich meinen virtualenv haben, schlucke?

+0

Ein bisschen googeln, aber lesen [this] (http://docs.readthedocs.org/en/latest/faq.html#i-get-import-errors-on-libraries-that-depend-on) -c-Module). Dieser LGPL-Lizenzcode, den ich gefunden habe, könnte mich auch interessieren (Disclaimer: Ich bin nicht mit dem Projekt verbunden): https://github.com/pyudev/pyudev/blob/develop/doc/conf.py#L37 –

+0

@ three_pineapples: danke dafür. – user9144

+0

Sie können Readthedocs auch auf eine alternative requirements.txt in ihren Einstellungen verweisen. – Trilarion

Antwort

1

Der Trick ist, diese Schnittstellen zu verspotten:

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

Beachten Sie, dass Sie auch das Root-Paket ‚PyQt4‘ spotten muss oder wird ein Import bekommen.