Unverified Commit 7b08f3fd authored by 7c6f434c's avatar 7c6f434c Committed by GitHub
Browse files

Merge pull request #209505 from davidwilemski/pynvml-py3

pynvml: Add patch for finding libnvidia-ml.so.1 on NixOS
parents f4c4c982 7650f5f8
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
diff --git a/pynvml/nvml.py b/pynvml/nvml.py
index 56d908f..1de0b97 100644
--- a/pynvml/nvml.py
+++ b/pynvml/nvml.py
@@ -1475,7 +1475,11 @@ def _LoadNvmlLibrary():
                             nvmlLib = CDLL(os.path.join(os.getenv("ProgramFiles", "C:/Program Files"), "NVIDIA Corporation/NVSMI/nvml.dll"))
                     else:
                         # assume linux
-                        nvmlLib = CDLL("libnvidia-ml.so.1")
+                        try:
+                            nvmlLib = CDLL("libnvidia-ml.so.1")
+                        except OSError:
+                            # assume NixOS
+                            nvmlLib = CDLL("@driverLink@/lib/libnvidia-ml.so.1")
                 except OSError as ose:
                     _nvmlCheckReturn(NVML_ERROR_LIBRARY_NOT_FOUND)
                 if (nvmlLib == None):
+9 −0
Original line number Diff line number Diff line
{ lib
, buildPythonPackage
, fetchPypi
, substituteAll
, pythonOlder
, cudatoolkit
, addOpenGLRunpath
}:

buildPythonPackage rec {
@@ -15,6 +17,13 @@ buildPythonPackage rec {
    sha256 = "b2e4a33b80569d093b513f5804db0c7f40cfc86f15a013ae7a8e99c5e175d5dd";
  };

  patches = [
    (substituteAll {
      src = ./0001-locate-libnvidia-ml.so.1-on-NixOS.patch;
      inherit (addOpenGLRunpath) driverLink;
    })
  ];

  propagatedBuildInputs = [ cudatoolkit ];

  doCheck = false;  # no tests in PyPi dist