
私はしばらくの間 nixOS を使用していますが、Ubuntu から移行したのでバイナリ依存関係に苦労しています。問題は、psycopg2 を仮想環境にインストールしたいことです。このパッケージは純粋な Python ではなく、postgres バイナリにリンクしています。そのため、パッケージをインストールしようとすると、次のエラーが表示されます。
./psycopg/psycopg.h:31:22: fatal error: libpq-fe.h: No such file or directory
問題は、バイナリ ライブラリとヘッダー ファイルをこのようなローカル インストールで利用できるようにするにはどうすればよいかということです。
答え1
Python 開発では、通常、nix-shell
とvirtualenv
構成の組み合わせを使用します。
% nix-shell -p pythonPackages.virtualenv postgresql
(nix-shell) % virtualenv env
(nix-shell) % ./env/bin/pip install psycopg2
上記の重要な部分は、postgresql
virtualenvと一緒にインストールすることです
Pillow などの一部のパッケージでは、ライブラリがどこにあるべきかについて過剰な想定を行っているため、pythonPackages
直接使用する必要がある可能性があります。
あなたも興味があるかもしれませんpypi2nixファイルを nix 式に変換できますrequirements.txt
。困った場合は、IRC で私に連絡してください。ぜひテストしてみたいと思います。