   (let* ((prefix (concat "fslit_" (buffer-name)))
          (html-fname (make-temp-file prefix nil ".html"))
          (fst2html (expand-file-name "etc/fslit/fst2html.py" fstar--directory))
-         (contents (buffer-substring-no-properties (point-min) (point-max))))
+         (contents (buffer-substring-no-properties (point-min) (point-max)))
+         (python (fstar-find-executable fstar-python-executable "Python"
+                                   'fstar-python-executable 'local-only)))
     (with-temp-buffer
-      (pcase (call-process-region contents nil "python"
+      (pcase (call-process-region contents nil python
                                   nil t nil fst2html "-" html-fname)
         (`0 (message "Compilation complete: %s" (fstar--string-trim (buffer-string)))
             (browse-url html-fname))

(defun fstar-literate--run-converter (&rest args)
  "Run converter with ARGS on current buffer.
Return converted contents and adjusted value of point."
  (let* ((python (fstar-find-executable "python" "Python" nil 'local-only))
         (converter (expand-file-name "etc/fslit/translate.py" fstar--directory))
         (input (concat (buffer-substring-no-properties (point-min) (point))
                        fstar-literate--point-marker

May be one of “z3” (search in $PATH), an absolute path, or a
function taking a string (the full path to the F* executable) and
returning a string (the full path to the SMT solver)."
  :group 'fstar
  :type 'file
  :risky t)

(defvaralias 'flycheck-fstar-literate-executable 'fstar-python-executable)

(defcustom fstar-python-executable "python"
  "Where to find Python (preferably 3).
Can be \"python\" or \"python3\", or an absolute path."
  :group 'fstar
  :type 'file
  :risky t)
