2016-06-13 15 views
1

Ich habe kürzlich Jedi-Vim zu meinem Plug-in Arsenal hinzugefügt. Es funktioniert gut für die Standard-Module, ist aber nicht in der Lage, bpy und bmesh Zeug zu finden.Autocomplete Blender Skript mit Jedi-Vim

So in der Mixer-Konsole nahm ich die Ausgabe von print(sys.path) und hat es zu einer vimscript Funktion in einer .lvimrc Datei, wie folgt aus:

function BpyPath() 
    python sys.path.append('/home/john/src/blender-2.77-linux-glibcl211-x86_64/2.77/python/lib/python3.5') 
    ... 
endfunction 

Jetzt funktioniert es besser. Typing bpy. gibt mir:

enter image description here

Aber eingeben bpy.context. noch gibt mir: - Omni Abschluss (^ O^N^P) Muster nicht gefunden

Versionen:

  • Blender: 2.77a 64-Bit-Linux
  • Betriebssystem: Fedora 22
  • Python: 2.7.10
  • Vim: 7,4

Ich bin kein sehr weit fortgeschritten Python oder vim Benutzer, so wird jede Hilfe dankbar.

+0

Was wollten Sie gezeigt haben? – SibiCoder

+0

@SibiCoder Funktionen und Variablen in bpy.context Namespace – John

+0

Können Sie ein Beispiel Snippet mit wenig Erklärung geben und mir zeigen, was Sie wollen? – SibiCoder

Antwort

2

Ich habe gerade gemerkt, dass es nicht viel Hoffnung gibt, weil Sie bereits mit einem kompilierten (C/C++) Modul sprechen.

Wenn dir(bpy.context) (in einer Python-Shell) nicht die gewünschten Komplettierungen liefert, kann Jedi diese Informationen auch nicht ableiten. Wenn dir Ihnen etwas Vernünftiges gibt, erstellen Sie einfach ein Problem im Jedi Issue Tracker. Es wäre ein Fehler, IMO.

Ich plane ein Plugin-System für Jedi, um Jedi auch mit solchen Anwendungsfällen zu verwenden. Aber das wird wahrscheinlich zwei Jahre dauern.

+0

Nein. Das gab keine nützliche Ausgabe. Ich warte nur die zwei Jahre. Vielen Dank. – John

+1

Dave - Ich erwarte, dass Sie mehr Fragen über die automatische Vervollständigung des Blenders bekommen werden, da diese öfter kommt. Sehen Sie meine Antwort dazu, da das bpy-Modul von blender kein normales Python-Modul ist und außerhalb Ihres Projekts extra eingerichtet werden müsste. – sambler

2

Dies fängt oft Leute aus. Blenders bpy Modul ist ein kompiliertes Modul, das aus Quellcode innerhalb von Blender erstellt wurde. Die Binärdatei für das Modul wird in die Binärdatei von blender eingefügt und nicht außerhalb des Python-Interpreters innerhalb von blender verfügbar gemacht.

Es ist möglich, Blender selbst zu kompilieren und eine Option zum Erstellen von blender as a python module zu erstellen, die Sie in jeden Python-Interpreter importieren können, und wird wahrscheinlich die Lösung sein, nach der Sie suchen.

In this answer finden Sie auch einige Links zu anderen Antworten, die Tipps für die Verwendung von Eclipse und Pycharm mit Blender haben, die eine Hilfe sein können.