I have a flake.nix
like this:
{
description = "EMR Serverless compatible Python env";
# Flake inputs
inputs = {
nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.2405.*.tar.gz";
nixpkgs-python.url = "github:cachix/nixpkgs-python";
};
# Flake outputs
outputs = { self, nixpkgs, nixpkgs-python }:
let
# Systems supported
allSystems = [
"x86_64-linux" # 64-bit Intel/AMD Linux
"aarch64-linux" # 64-bit ARM Linux
"x86_64-darwin" # 64-bit Intel macOS
"aarch64-darwin" # 64-bit ARM macOS
];
# Helper to provide system-specific attributes
forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f {
pkgs = import nixpkgs { inherit system; };
});
in
{
# Development environment output
devShells = forAllSystems ({ pkgs }: {
default =
let
python = nixpkgs-python.packages.x86_64-linux."3.9.16";
in
pkgs.mkShell {
# The Nix packages provided in the environment
packages = [
# Python plus helper tools
(python.withPackages (ps: with ps; [
virtualenv # Virtualenv
pip # The pip installer
]))
];
};
});
};
}
The issue is that the Python system is fixed to x86_64-linux
here:
python = nixpkgs-python.packages.x86_64-linux."3.9.16";
I think that it should be platform-specific, somehow using system
.
How do I achieve this?