
Я некоторое время использую nixOS, но, перейдя с Ubuntu, у меня возникли трудности с бинарными зависимостями. Моя проблема в том, что я хочу установить psycopg2 в virtualenv. Этот пакет не является чисто 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который может преобразовать ваш requirements.txt
файл в выражения nix. Если у вас возникнут проблемы, пожалуйста, напишите мне на IRC, я бы с удовольствием протестировал это.