Blender, PyQt und sip

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Tiles

Blender, PyQt und sip

Beitrag von Tiles »

Ich brauche mal wieder Hilfe. Ich habe mal wieder eins dieser Ochs vor Berg Probleme ^^

Ich bin auf Windows 7. Eins meiner Ziele ist ja Blender QT beizubügeln. Direkt kann man vergessen. Dafür müsste ich Blender wohl komplett neu programmieren. Dazu langen weder meine Fähigkeiten, noch werde ich wohl alt genug um das je fertig zu bekommen selbst wenn ich selbige hätte. Das schreit also nach Python, da ja die Blender UI eh in Python gemacht ist. PySide wird nicht mehr so recht weiterentwickelt. Bleibt der Weg über PyQt.

Also runtergeladen, die richtigen Versionen installiert (Mein Fork funzt mit Python 3.4, Blender ist inzwischen bei 3.5. Und alles auf 64 Bit. Sprich Python 3 flog erst mal noch mal runter und ist nun 64 Bit Python 3. Sonst hätte das PyQt Package nicht installiert), den ganzen Kladderadatsch geschnappt und in den entsprechenden Python Ordner in Blender verpflanzt damit PyQt auch als Modul in Blender gefunden wird.

Dann habe ich ein erstes Script ausgebuddelt und mal rennen lassen, welches wohl einen PyQt Panel erzeugt wenns denn funzt.

PyQt wird als Modul gefunden. Aber nicht sip. Import Error: no module named sip. Und da isser, der Berg. Wie kriege ich Blender dazu sip zu finden? :)

Was ich bisher probiert habe:

- Nachgeschaut ob im PyQt Ordner überhaupt ein sip zu finden ist. Ja. sip.exe existiert. Ich dachte eigentlich dass das schon auslangt weil es hiess PyQt bringt alles mit.
- Noch mal das Installing PyQt5 Dokument auseinandergenommen, und versucht über pip sip zu installieren. pip kennt sip nicht. Toll.
- sip noch mal extra runtergeladen, mittels des VS Developer Command Prompts neu gebuildet und eine exe gebaut. Die landet mit ihren Abhängigkeiten in Python 2.7. Dann noch mal Blender gebuildet, und nix. Immer noch gleicher Fehler. Klar, Blender verwendet ja auch Python 3.4.
- mit python 3 noch mal gebuildet. Dabei folgende Fehler bekommen:
python34.lib(python34.dll) : fatal error LNK1112: Modul-Computertyp "x64" steht
in Konflikt mit dem Zielcomputertyp "X86".
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 12.0
\VC\BIN\link.EXE"": Rückgabe-Code "0x458"
Stop.
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 12.0
\VC\BIN\nmake.exe"": Rückgabe-Code "0x2"

- Ausgiebig geflucht

Wie gesagt, Ochs vor Berg. Hat jemand einen kleinen Hinweis für mich wie ich das Ganze hier repariert bekomme? Was mache ich denn hier grade wieder alles falsch? :)
Tiles

Beitrag von Tiles »

Scratch this shit. War wohl keine so gute Idee da 64 Bit verwenden zu wollen. Ich habe nun wieder 32 Bit Python 3 drauf, und verwende auch das 32 Bit PyQt. Und sip rödelt nun brav bei Python 3.4 durch. Ich hatte nur kurz das Problem dass mich die Blender Konsole anmeckerte dass %1 keine gültige Win 32 Anwendung sei. Da waren wohl noch irgendwo Fragmente der 64 Bit Installation. Nach einem Restart, einem neu generierten Cmake und neu kompilieren ist auch dieser Fehler weg. Es wird nun weder über ein fehlendes PyQt gemeckert noch über ein fehlendes sip. Feini.

Dafür hänge ich nun am nächsten Problem. PyQT weigert sich weiterhin standhaft zu funktionieren. Nun schmeisst mir die Blender Konsole den nächsten Import Error um die Ohren -.-

ImportError: cannot import name 'QtGui'

Jemand eine Idee an was das liegen könnte?
Tiles

Re: Blender, PyQt und sip

Beitrag von Tiles »

Hm, was da auch immer querschlägt, nu schlägt es richtig quer. Ich bin wieder bei meinem ImportError: No module named 'sip' Error angekommen -.-
Tiles

Re: Blender, PyQt und sip

Beitrag von Tiles »

*Wein*
ImportError: DLL load failed: %1 ist keine zulässige Win32-Anwendung.
Tiles

Re: Blender, PyQt und sip

Beitrag von Tiles »

Des Rätsels Lösung: Blender kommt doch mit integriertem Python. Und arbeitet intern dann nicht mit der installierten Python Version 3. Sondern mit seinem eigenen integrierten Interpreter. Und der ist bei der 64 Bit Version von Blender eben auch 64 Bit. Was dann mit dem 32 Bit PyQt nicht funktioniert. Kein Wunder bin ich hier von einem Fehler zum anderen getanzt.

Drauf gekommen bin ich als ich mir mal das system-info.txt angesehen habe die man mit Blender erstellen kann. Ich habe Python 3.4.3 installiert. Definitv 32 Bit.
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (In
tel)] on win32
Das system-info.txt von Blender meldet mir 3.4.2 mit 64 Bit:
Python:
============================================

version: 3.4.2 (default, Dec 7 2014, 18:21:18) [MSC v.1800 64 bit (AMD64)]
Was ich nun gemacht habe war PyQt direkt in den Release Ordner zu installieren. Der 64 Bit Installer meckert mich dann zwar an dass ich Python in 32 Bit installiert habe, und ich gerade die 64 Bit Version von PyQt installiere. Aber es installiert brav, und schmeisst mir dann auch keinen Fehler mehr beim PyQt5 Import wenn ich das Script aufrufe. Den schmeisst es nun eine Zeile später, hehe. Der Beispielcode den ich ausgebuddelt hatte war für PyQt 4. Ich werkel hier mit Version 5. Und da ist wohl doch einiges anders. Aber wenigstens habe ich endlich einen Fuss in der Tür \o/
Antworten