Function: python-shell-calculate-process-environment

python-shell-calculate-process-environment is a byte-compiled function defined in python.el.gz.

Signature

(python-shell-calculate-process-environment)

Documentation

Calculate process-environment or tramp-remote-process-environment.

Prepends python-shell-process-environment, sets extra pythonpaths from python-shell-extra-pythonpaths and sets a few virtualenv related vars. If default-directory points to a remote host, the returned value is intended for tramp-remote-process-environment.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/python.el.gz
(defun python-shell-calculate-process-environment ()
  "Calculate `process-environment' or `tramp-remote-process-environment'.
Prepends `python-shell-process-environment', sets extra
pythonpaths from `python-shell-extra-pythonpaths' and sets a few
virtualenv related vars.  If `default-directory' points to a
remote host, the returned value is intended for
`tramp-remote-process-environment'."
  (let* ((remote-p (file-remote-p default-directory))
         (process-environment (if remote-p
                                  tramp-remote-process-environment
                                process-environment))
         (virtualenv (when python-shell-virtualenv-root
                       (directory-file-name python-shell-virtualenv-root))))
    (dolist (env python-shell-process-environment)
      (pcase-let ((`(,key ,value) (split-string env "=")))
        (setenv key value)))
    (when python-shell-unbuffered
      (setenv "PYTHONUNBUFFERED" "1"))
    (when python-shell-extra-pythonpaths
      (setenv "PYTHONPATH" (python-shell-calculate-pythonpath)))
    (if (not virtualenv)
        process-environment
      (setenv "PYTHONHOME" nil)
      (setenv "VIRTUAL_ENV" virtualenv))
    process-environment))