LINUX.ORG.RU

NixOS и разные версии python + pycharm

 , ,


0

2

Подскажите, а какой официальный способ установки нескольких версий Python’а и как их сделать видимымой проектно специфичную версию в Pycharm’е? Обычно компилировал разные версии с разным префиксом а потом venv с pip. Но NixOS это же другое.

Судя по всему, тебе нужны dev-окружения под проект через shell.nix, default.nix или flake.nix (команда nix shell или nix develop, если используешь хлопья). Будет также полезна связка direnv/nix-direnv.

Гугли по ключевым словам «nixos python development environment», например. Мануал почитай, наконец. Нужная версия питона, скорее всего, будет как и везде устанавливаться через sources/inputs pinning.

Вот что нашёл по интеграции всего этого добра с pycharm, ну и ты тоже погугли.

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 3)
Ответ на: комментарий от InterVi

Обязательно использовать средства nixos?

Вот и хочется узнать можно ли обойтись средствами самой системы. Тем более reproducibility там заявлено из коробки и очень подкупает.

mathieu
() автор топика
Ответ на: комментарий от mathieu

Обхожусь средствами системы, но не использую IDE, по интеграции с pycharm’ом не подскажу, но могу поделиться своими конфигами, хотя они мало отличаются от того, что приведено на вики и в обсуждениях. Создаю виртуальные шеллы через direnv, читающий default.nix для каждого проекта со своими зависимостями и версиями интерпретатора

Однако бывают и разные приколы, например после обновления системы по понятной причине ломаются бинари (в том числе и сам python) в виртуальном окружении, созданном venvShellHookом. Может совет по ссылке выше с использованием autoPatchelfHook решит проблему, надо попробовать. Подписался на тред, может подскажут что ещёинтересного

grazor ★★
()
Ответ на: комментарий от mathieu

Главное чтоб в системе были питоны, их можно подружить с pipenv. Насчёт PyCharm не знаю, а vscode с ним отлично интегрируется. По ссылке выше я нашёл мануал с кривой пародией на venv (который используется в pipenv). Суть одна: настройка переменных окружения на нужный интерпретатор и директорию с зависимостями. А сам питон необязательно качать локально, можно использовать системный.

InterVi ★★★★
()
Последнее исправление: InterVi (всего исправлений: 1)
Ответ на: комментарий от t184256

Нашёл доку для питона, никс на проде просто великолепен. Но вот для разработки нашлись два костыля:

Это уродливо и неудобно. Есть ли способ сделать правильно? Логичнее было бы писать код в другой ОС с pipenv, а никс деплоить только на прод.

InterVi ★★★★
()