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)
Ответ на: комментарий от ggrn

Конда умеет разные версии из коробки без ручного пересбора

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

Да, конечно можно. Просто вместо python3Packages используешь python39Packages и готово.

virtualenvs, pipы и прочие костыли при живой NixOS не нужно и должно сгореть.

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

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

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

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

В философии NixOS нет места дурацкому «в системе», «установить» и прочим понятиям из 20 века.

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

Ничего не знаю ни про какой pycharm, но если он, запущенный из nix shell не найдет единственный доступный ему при этом питон, то это точно не проблема Nixа.

t184256 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.