Python CFFI Scheisse

Heute wollte ich mir pbp installieren, um im Zug mit dem pcp Umbau anzufangen. Tja, aber Stef verwendet CFFI für das C-Interface. Ich ich muss sagen, als alter Perlmacker ist mir noch nie etwas beschisseneres untergekommen, als dieses CFFI. Ich habe pysodium und pbp vorschriftsmässig installiert mit:

python setup.py build
sudo python setup.py install

Und weder beim Build, noch beim install kamen irgendwelche Fehlermeldungen. Was mich verwundert hat, da die meisten Sourcen heutzutage arg linuxlastig sind und /usr/local in deren Welt nicht vorkommt. Und dort ist die libsodium bei mir installiert.

Tja, und dann habe ich einfach mal das Kommando pbp ausgeführt. Und was kam da? Compilerfehler! Zur Laufzeit, NACHDEM ich alles installiert hatte! Ich hab bei Stef einen Bug eröffnet, aber ich befürchte, da wird er auch nix machen können. Ich hab dann ein wenig herumgegoogelt, und was steht da in der CFFI Doku?

[..]but so far require a C compiler at runtime. (We plan to improve with caching and a way to distribute the compiled code.)

WTF?!

Ich meine, sowas kann man doch nicht machen, dass der Enduser bereits installierte Module noch compilieren muss. Was da alles schiefgehen kann, sieht man ja an meinem Bug. Und als ob das nicht schon schlimm genug wäre, ignoriert CFFI irgendwelche übergebenen CFLAGS oder LDFLAGS, und zwar sowohl während dem Installieren, als auch zur Laufzeit.

So eine Scheisse. Sowas geht gar nicht.

Dann habe ich noch festgestellt, wenn ich pbp aufrufe und die ganzen Compilerfehler kommen, dass es danach im aktuellen Verzeichnis ein neues Unterverzeichnis gibt: build/bdist.freebsd-9.0-RELEASE-p3-amd64/egg/pysodium/__pycache__/. Selbst, wenn der runtime-Build funktioniert hätte, wenn ich dieses Verzeichnis löschen würde, würde CFFI es erneut erstellen und den ganzen Kram erneut compilieren.

Nee. Das ist umso bescheuerter, als es ja durchaus schon lange Methoden gibt, Python-Code mit binären Libraries zu verheiraten.

#source

↷ 19.01.2014