Как я могу установить пакет в оболочку nix из исходного кода для отладки с использованием флейков, что эквивалентно разрPython

Программы на Python
Ответить
Anonymous
 Как я могу установить пакет в оболочку nix из исходного кода для отладки с использованием флейков, что эквивалентно разр

Сообщение Anonymous »

Есть ли способ включить пакет в оболочку nix из исходного кода, т.е. путь, ведущий не к копии кода в хранилище nix, а к реальному исходному коду, для целей отладки?
Т.е. Я ищу nix-флейк, эквивалентный бегу

Код: Выделить всё

python setup.py develop
в среде conda вместо установки.
Ближе всего я нашел использование Flake.nix, например

Код: Выделить всё

{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
outputs = { self, nixpkgs }:
let
pkgs = import nixpkgs { system = "x86_64-linux"; };
python_library = pkgs.python3Packages.buildPythonPackage {
pname = "python_library";
version = "0.1";
src = /home/user_name/python_library;
doCheck = false;
};
in {
defaultPackage.x86_64-linux = pkgs.buildEnv {
name = "test-env";
paths = [
(pkgs.python3.withPackages(ps: [
ps.numpy
ps.scipy
ps.matplotlib
python_library
]))
pkgs.spyder
];
};
};
}

Где python_library содержит новый код, который я хочу отладить, например

Код: Выделить всё

class Hello:
def __init__(self):
print("Hello!!! Hello!")
который я тестирую с помощью

Код: Выделить всё

>>> from python_library.test import Hello
>>> a=Hello()
Hello!!! Hello!
Чтобы изменения в коде вступили в силу, мне нужно запустить

Код: Выделить всё

nix build
nix shell
который перестраивает среду nix с обновленным кодом, если флейк не находится внутри репозитория git. Однако этот процесс пересборки может сильно раздражать в более сложных случаях, если нужно исправить много ошибок и всегда приходится переключать папку между флейком nix и выполняемым кодом, поэтому мне было интересно, есть ли способ написать флейк таким образом, чтобы хранилище nix напрямую ссылалось на исходный код, а не копировало его, как это возможно с anaconda?
Ни одна из команд nix development не делала ничего подобного для меня.

Подробнее здесь: https://stackoverflow.com/questions/775 ... -using-fla
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»