Make the sys.path remove in Python mode customizable (Bug#7454).
* progmodes/python.el (run-python): Doc fix. (python-keep-current-directory-in-path): New var (Bug#7454).
This commit is contained in:
parent
0d6607ab81
commit
1d851570a6
3 changed files with 38 additions and 15 deletions
|
@ -1426,6 +1426,16 @@ Default ignores all inputs of 0, 1, or 2 non-blank characters."
|
|||
:type 'regexp
|
||||
:group 'python)
|
||||
|
||||
(defcustom python-remove-cwd-from-path t
|
||||
"Whether to allow loading of Python modules from the current directory.
|
||||
If this is non-nil, Emacs removes '' from sys.path when starting
|
||||
an inferior Python process. This is the default, for security
|
||||
reasons, as it is easy for the Python process to be started
|
||||
without the user's realization (e.g. to perform completion)."
|
||||
:type 'boolean
|
||||
:group 'python
|
||||
:version "23.3")
|
||||
|
||||
(defun python-input-filter (str)
|
||||
"`comint-input-filter' function for inferior Python.
|
||||
Don't save anything for STR matching `inferior-python-filter-regexp'."
|
||||
|
@ -1523,20 +1533,24 @@ Don't save anything for STR matching `inferior-python-filter-regexp'."
|
|||
;;;###autoload
|
||||
(defun run-python (&optional cmd noshow new)
|
||||
"Run an inferior Python process, input and output via buffer *Python*.
|
||||
CMD is the Python command to run. NOSHOW non-nil means don't show the
|
||||
buffer automatically.
|
||||
CMD is the Python command to run. NOSHOW non-nil means don't
|
||||
show the buffer automatically.
|
||||
|
||||
Normally, if there is a process already running in `python-buffer',
|
||||
switch to that buffer. Interactively, a prefix arg allows you to edit
|
||||
the initial command line (default is `python-command'); `-i' etc. args
|
||||
will be added to this as appropriate. A new process is started if:
|
||||
one isn't running attached to `python-buffer', or interactively the
|
||||
default `python-command', or argument NEW is non-nil. See also the
|
||||
documentation for `python-buffer'.
|
||||
Interactively, a prefix arg means to prompt for the initial
|
||||
Python command line (default is `python-command').
|
||||
|
||||
Runs the hook `inferior-python-mode-hook' \(after the
|
||||
`comint-mode-hook' is run). \(Type \\[describe-mode] in the process
|
||||
buffer for a list of commands.)"
|
||||
A new process is started if one isn't running attached to
|
||||
`python-buffer', or if called from Lisp with non-nil arg NEW.
|
||||
Otherwise, if a process is already running in `python-buffer',
|
||||
switch to that buffer.
|
||||
|
||||
This command runs the hook `inferior-python-mode-hook' after
|
||||
running `comint-mode-hook'. Type \\[describe-mode] in the
|
||||
process buffer for a list of commands.
|
||||
|
||||
By default, Emacs inhibits the loading of Python modules from the
|
||||
current working directory, for security reasons. To disable this
|
||||
behavior, change `python-remove-cwd-from-path' to nil."
|
||||
(interactive (if current-prefix-arg
|
||||
(list (read-string "Run Python: " python-command) nil t)
|
||||
(list python-command)))
|
||||
|
@ -1549,9 +1563,9 @@ buffer for a list of commands.)"
|
|||
(when (or new (not (comint-check-proc python-buffer)))
|
||||
(with-current-buffer
|
||||
(let* ((cmdlist
|
||||
(append (python-args-to-list cmd)
|
||||
;; See http://lists.gnu.org/archive/html/emacs-devel/2008-09/msg00215.html
|
||||
'("-i" "-c" "import sys; sys.path.remove('')")))
|
||||
(append (python-args-to-list cmd) '("-i")
|
||||
(if python-remove-cwd-from-path
|
||||
'("-c" "import sys; sys.path.remove('')"))))
|
||||
(path (getenv "PYTHONPATH"))
|
||||
(process-environment ; to import emacs.py
|
||||
(cons (concat "PYTHONPATH="
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue