Я использую NixOS на WSL
Я использую версию nix 2.18.1. я бегу
nix develop
в каталоге, содержащем flake.nix, это выглядит так:
{
description = "Python environment with ollama";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
jina-hubble-sdk = with pkgs.python3Packages;
buildPythonPackage rec {
pname = "jina-hubble-sdk";
version = "0.39.0";
src = pkgs.fetchPypi {
inherit pname version;
sha256 = "9021417794a6d3cf3fad8a880cf668a3a986b9d53d5be5fa391aae1767a5b9b0";
};
nativeBuildInputs = [
poetry-core
pkgs.dos2unix # Add dos2unix to convert line endings
];
propagatedBuildInputs = [
pep517
pip
requests
aiohttp
rich
importlib-metadata
filelock
pathspec
docker
pyyaml
python-jose
];
# Convert line endings to Unix-style
preConfigure = ''
export HOME=$(mktemp -d)
'';
# put this code inside preConfigure if you want to run it dos2unix -f /nix/store/v099hqvw5z87423p4hz1vfhzaqa07dii-stdenv-linux/setup
};
pythonEnv = pkgs:
pkgs.python3.withPackages (ps:
with ps; [
jina-hubble-sdk
]);
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
curl
ollama
(pythonEnv pkgs)
];
};
});
}
и я получаю следующую ошибку
ошибка: строитель для '/nix/store/dm6cxw020s7whbfgqj8jivd3dv1pby0i-python3.11-jina-hubble-sdk-0.39.0.drv' ошибка с кодом выхода 127; последние 10 строк журнала: > Использование setuptoolsCheckPhase > Фаза выполнения: unpackPhase > распаковка исходного архива /nix/store/9q6b5l6955sabgvk8ah5xx0sfji25zmn-jina-hubble-sdk-0.39.0.tar.gz > исходный корень — jina-hubble-sdk-0.39.0 > установка SOURCE_DATE_EPOCH на временную метку 1688549032 файла jina-hubble-sdk-0.39.0/setup.cfg > Фаза выполнения: patchPhase > Фаза выполнения: updateAutotoolsGnuConfigScriptsPhase > Фаза выполнения: configurePhase > /nix/store/v099hqvw5z87423p4hz1vfhzaqa07dii-stdenv-linux/setup: строка 114: $'\r': команда не найдена > /nix/store/v099hqvw5z87423p4hz1vfhzaqa07dii-stdenv-linux/setup: строка 131: pop_var_context: заголовок Shell_variables, а не контекст функции Чтобы просмотреть полные журналы, запустите nix-store -l /nix/store/dm6cxw020s7whbfgqj8jivd3dv1pby0i-python3.11-jina-hubble-sdk-0.39.0.drv. ошибка: 1 зависимости вывода '/nix/store/25gl4f29rr56ci1h5k53wmm7wgfmk2p2-python3-3.11.8-env.drv' не удалось построить ошибку: 1 зависимости деривации Ошибка '/nix/store/pxkgnl5nx66fcdi1rkvz86kbfrvlmhn2-nix-shell-env.drv' строить
Важная строка в сообщении об ошибке:
/nix/store/v099hqvw5z87423p4hz1vfhzaqa07dii-stdenv-linux/setup: строка 114: $'\r': команда не найдена >
Я предположил, что проблема связана с тем, что Linux и Windows (см. этот сайт) по-разному разрывают строку. Я хотел адаптировать файл, который вызвал проблему:
preConfigure = ''
# dos2unix -f /nix/store/v099hqvw5z87423p4hz1vfhzaqa07dii-stdenv-linux/setup
# '';
но это ничего не меняет. Поэтому я комментирую это, но вы можете раскомментировать его, чтобы проверить самостоятельно.
@LoïcReynier Хорошо, это очень странно. Я пробовал nix development и nix development .#, но это не работает. Какая у тебя версия никса? У меня 2.18.1. (вы можете использовать эту команду nix --version)
Та же версия. Вы можете попробовать обновить файл flake.lock
.
@LoïcReynier Я удалил flake.lock и перезапустил flake.nix. У меня та же проблема. Я запускаю NixOS на WSL. Как вы думаете, это связано
Также использую NixOS на WSL. Вы уверены, что используете flake.nix
из поста?
@LoïcReynier Я проверил еще раз. Я копирую этот flake.nix в каталог и запускаю nix development в этом же каталоге. И у меня все еще та же ошибка
@LoïcReynier, возможно, это глупые вопросы, но мне нужно кое-что попробовать: 1) Какова для вас ценность ${system}. Для меня это x86_64-linux. 2) Можете ли вы протестировать nix development -i и сказать, работает ли он еще?
Хотя в сообщении об ошибке говорилось, что проблема связана с файлом, который не является разработанным мной flake.nix, проблемы возникают из разработанного мной flake.nix. Я пишу код, используя код, открытый из Windows. Следовательно, он использует кодировку DOS.
запустите nix development в другом каталоге, содержащем этот файл
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
pkgs.dos2unix
];
};
});
}
Теперь вы можете запустить
dos2unix flake.nix
в каталоге с флейком выдает ошибку. он изменил кодировку. И теперь вы можете бежать
nix develop
с этой чешуйкой все будет работать нормально
Ответ исходит от ВТимофеенко, который там это написал: https://discourse.nixos.org/t/what-could-cause-this-flake-to-fail-on-my-computer-and-succeed-on-another/41868/2
Скопировал и вставил ваш
flake.nix
и запустилnix develop .#
без ошибок.