import os from pathlib import Path import sys import json prefix = Path(os.environ["PREFIX"]) kernel = "python{}".format(sys.version_info[0]) spec_path = prefix / "share" / "jupyter" / "kernels" / kernel / "kernel.json" posix_exe = Path(sys.executable).as_posix() print("Rewriting kernelspec at:\n\t{}".format(spec_path)) raw_spec = spec_path.read_text() print(raw_spec) spec = json.loads(raw_spec) print("Kernel python was:\n\t{}".format(spec["argv"][0])) if spec["argv"][0] == posix_exe: print("Path is fine") else: print("Rewriting kernel python with:\n\t{}".format(posix_exe)) spec["argv"][0] = posix_exe spec_path.write_text(json.dumps(spec, indent=2))