Dev shell with "python-on-nix"

I am trying python-on-nix and help with some goals I try to accomplish.

  1. I try to get a nix develop shell with pycharm-professional and black.
  2. How can I pycharm, where the python environment is, that I build with nix build .#venv -o .venv?
  3. I need help with flake-utils eachDefaultSystem.

Here is my flake.nix:

{
  description = "python-on-nix";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs";
    flake-utils.url = "github:numtide/flake-utils";
    pythonOnNix.url = "github:kamadorueda/python-on-nix";
  };
  outputs = { self, nixpkgs, flake-utils, pythonOnNix, ... }:
    let
      python = "python39";
      system = "x86_64-linux";
      pkgs = import nixpkgs {
        inherit system;
        config = { allowUnfree = true; };
      };
      pythonEnv = pythonOnNix.lib."${python}Env" {
        name = "example";
        projects = with pythonOnNix.lib.projects; [
          matplotlib."latest"
          numpy."latest"
          pandas."latest"
          scikit-learn."latest"
          seaborn."latest"
        ];
      };
    in
    {
      defaultPackage.${system} = self.packages.${system}.venv;
      packages.${system}.venv = pythonEnv;
      devShell = pkgs.mkShell {
        buildInputs = [
          (pkgs.${python}.withPackages (ps: with ps; [
            pip
            black
          ]))
          pkgs.jetbrains.pycharm-professional
          pythonEnv
        ];
      };
    };
}
1 Like