Wie greife ich in Nixos lokal auf Bibliotheken zu?

Wie greife ich in Nixos lokal auf Bibliotheken zu?

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-shellund virtualenvKonfiguration.

% 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 postgresqlzusammen 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.txtDatei in Nix-Ausdrücke konvertiert werden kann. Wenn Sie nicht weiterkommen, pingen Sie mich bitte über IRC an, ich würde es gern testen.

verwandte Informationen