nixos でローカルにライブラリにアクセスするにはどうすればいいですか?

nixos でローカルにライブラリにアクセスするにはどうすればいいですか?

私はしばらくの間 nixOS を使用していますが、Ubuntu から移行したのでバイナリ依存関係に苦労しています。問題は、psycopg2 を仮想環境にインストールしたいことです。このパッケージは純粋な Python ではなく、postgres バイナリにリンクしています。そのため、パッケージをインストールしようとすると、次のエラーが表示されます。

./psycopg/psycopg.h:31:22: fatal error: libpq-fe.h: No such file or directory

問題は、バイナリ ライブラリとヘッダー ファイルをこのようなローカル インストールで利用できるようにするにはどうすればよいかということです。

答え1

Python 開発では、通常、nix-shellvirtualenv構成の組み合わせを使用します。

% nix-shell -p pythonPackages.virtualenv postgresql
(nix-shell) % virtualenv env
(nix-shell) % ./env/bin/pip install psycopg2

上記の重要な部分は、postgresqlvirtualenvと一緒にインストールすることです

Pillow などの一部のパッケージでは、ライブラリがどこにあるべきかについて過剰な想定を行っているため、pythonPackages直接使用する必要がある可能性があります。

あなたも興味があるかもしれませんpypi2nixファイルを nix 式に変換できますrequirements.txt。困った場合は、IRC で私に連絡してください。ぜひテストしてみたいと思います。

関連情報