Для чего стоит, чтобы подпроцессы python вели себя так, как я хотел (очевидно, полностью полагая, что они находятся в указанном каталоге), мне пришлось сделать:
(let* ((default-directory (find-correct-dir))
(process-environment (cons (format "PWD=%s" default-directory)
process-environment)))
(do-the-subprocess-thing))
Или, если бы я хотел выбросить остальную часть окружающей среды:
(let* ((default-directory (find-correct-dir))
(process-environment (list (format "PWD=%s" default-directory))))
(do-the-subprocess-thing))
То есть мне нужно было установить и default-directory
и process-environment
, и на одно и то же значение.