So because of the way nix installs python packages you have to explicitly add those dependencies to the qtile package. Adding them to with systemPackages or other ways won’t give qtile access to them.
What nixos version are you on? Can you post the output of nixos-version
here. Because I think a lot of the optional dependencies were added in this pr: qtile: add missing python package dependencies by vividn · Pull Request #99538 · NixOS/nixpkgs · GitHub.
So your problem might already be fixed with a nix channel update.
But if some are still missing, you can use this code in your configuration.nix to add more:
nixpkgs.overlays = [
(self: super: {
qtile = super.qtile.overrideAttrs(oldAttrs: {
pythonPath = oldAttrs.pythonPath ++ (with self.python37Packages; [
# Add other python dependencies here
]);
});
})
];
~