@@ -87,16 +87,18 @@ It will use `python-shell-exec-path' for PATH variable,
8787 (pythonic-set-path-variable)
8888 (pythonic-set-extra-variables)))
8989
90+ (defun pythonic-get-pythonpath-variable ()
91+ " Get PYTHONPATH variable from `python-shell-extra-pythonpaths' variable."
92+ (s-join path-separator
93+ (->> (or (getenv " PYTHONPATH" ) " " )
94+ (s-split path-separator)
95+ (-union python-shell-extra-pythonpaths)
96+ (-remove 's-blank? )
97+ (-distinct))))
98+
9099(defun pythonic-set-pythonpath-variable ()
91100 " Set PYTHONPATH variable from `python-shell-extra-pythonpaths' variable."
92- (-let* ((pythonpath (or (getenv " PYTHONPATH" ) " " ))
93- (pythonpaths (s-split path-separator pythonpath t ))
94- (external-pythonpaths (--remove (member it python-shell-extra-pythonpaths)
95- pythonpaths))
96- (new-pythonpaths (append python-shell-extra-pythonpaths
97- external-pythonpaths))
98- (new-pythonpath (s-join path-separator new-pythonpaths)))
99- (setenv " PYTHONPATH" new-pythonpath)))
101+ (setenv " PYTHONPATH" (pythonic-get-pythonpath-variable)))
100102
101103(defun pythonic-set-pythonpath-variable-tramp ()
102104 " Set PYTHONPATH variable from `python-shell-extra-pythonpaths' variable on remote host."
@@ -115,13 +117,18 @@ It will use `python-shell-exec-path' for PATH variable,
115117 (--remove (member it python-shell-extra-pythonpaths) it)
116118 (append python-shell-extra-pythonpaths it)))))))
117119
120+ (defun pythonic-get-path-variable ()
121+ " Get PATH variable according to `python-shell-exec-path' ."
122+ (s-join path-separator
123+ (->> (or (getenv " PATH" ) " " )
124+ (s-split path-separator)
125+ (-union python-shell-exec-path)
126+ (-remove 's-blank? )
127+ (-distinct))))
128+
118129(defun pythonic-set-path-variable ()
119130 " Set PATH according to `python-shell-exec-path' ."
120- (setenv " PATH"
121- (s-join path-separator
122- (-remove 'null
123- (append python-shell-exec-path
124- (list (getenv " PATH" )))))))
131+ (setenv " PATH" (pythonic-get-path-variable)))
125132
126133(defun pythonic-set-path-variable-tramp ()
127134 " Set PATH according to `python-shell-exec-path' on remote host."
@@ -174,6 +181,10 @@ process flag."
174181 (when sentinel
175182 (set-process-sentinel process sentinel))
176183 (set-process-query-on-exit-flag process query-on-exit)
184+ (process-put process 'default-directory default-directory)
185+ (process-put process 'environment python-shell-process-environment)
186+ (process-put process 'path (pythonic-get-path-variable))
187+ (process-put process 'pythonpath (pythonic-get-pythonpath-variable))
177188 process)))
178189
179190;;;### autoload
0 commit comments