Ich habe gelesen ( hier ), dass PyPy unterstützt hat CPython Erweiterungsmodule über cpyext.
Ich habe keine cpyext Dokumentation gefunden. Gibt es welche?
Wie benutze ich es?
Aus dem Quellcode (z. B. hier ) ), Habe ich herausgefunden, dass ich mein leveldb.so
Modul laden muss, wahrscheinlich:
Dies stürzt jedoch mit diesem Fehler ab:
%Vor%Ich habe im Backtrace bemerkt, dass es die Funktionen von meinem CPython aufruft, nicht von PyPy:
%Vor%Ich habe es herausgefunden.
Das Modul muss neu kompiliert werden. Ich muss die Header-Dateien von PyPy verwenden. Zum Verknüpfen darf ich keine Verbindung zu libpython herstellen. Ich muss dem Linker nur sagen, dass er nicht aufgelöste Symbole ignorieren soll.
Hier sind meine Befehle zum Erstellen von py-leveldb auf MacOSX:
%Vor% Das hat funktioniert. Ich habe gerade cpyext.load_module("leveldb.so","leveldb")
gemacht.
Ich habe auch einige Anmerkungen zu CPyExt in ihrem Wiki hier gefunden.
Plyvel, eine schnelle und funktionsreiche Python-Schnittstelle zu LevelDB, besteht auch fast alle seine vielen Komponententests, wenn es unter PyPy mit cpyext ausgeführt wird. (Die einzige Ausnahme betrifft das Threading.) Die Installation ist so einfach wie "pip install plyvel"; Man muss sich nicht mit Compiler-Flags herumschlagen.
Siehe Ссылка und Ссылка für weitere Informationen.
(Disclaimer: Ich habe Plyvel geschrieben.)