
Ich verwende nixOS schon seit einiger Zeit, aber da ich von Ubuntu komme, habe ich Probleme mit binären Abhängigkeiten. Mein Problem ist, dass ich psycopg2 in einer virtuellen Umgebung installieren möchte. Dieses Paket ist kein reines Python-Paket und es verlinkt auf Postgres-Binärdateien. Wenn ich also versuche, das Paket zu installieren, erhalte ich:
./psycopg/psycopg.h:31:22: fatal error: libpq-fe.h: No such file or directory
Die Frage ist: Wie macht man die Binärbibliotheken und Headerdateien für lokale Installationen wie diese verfügbar?
Antwort1
Für die Python-Entwicklung verwende ich normalerweise eine Kombination aus nix-shell
und virtualenv
Konfiguration.
% nix-shell -p pythonPackages.virtualenv postgresql
(nix-shell) % virtualenv env
(nix-shell) % ./env/bin/pip install psycopg2
Der wichtige Teil oben ist, dass Sie ihn postgresql
zusammen mit virtualenv installieren.
Einige Pakete, wie etwa Pillow, machen zu viele Annahmen darüber, wo sich Bibliotheken befinden sollten, und Sie müssen diese möglicherweise direkt verwenden pythonPackages
.
Das könnte Sie auch interessierenpypi2nixwodurch Ihre requirements.txt
Datei in Nix-Ausdrücke konvertiert werden kann. Wenn Sie nicht weiterkommen, pingen Sie mich bitte über IRC an, ich würde es gern testen.