This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: More flexible py-shell interpreter selection
Type: Stage:
Components: Demos and Tools Versions:
process
Status: closed Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: mhagger, nnorwitz, skip.montanaro
Priority: normal Keywords: patch

Created on 2003-01-26 19:20 by mhagger, last changed 2022-04-10 16:06 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
python-mode.el.patch mhagger, 2003-01-26 19:23 Patch file as described above
Messages (4)
msg42529 - (view) Author: Michael Haggerty (mhagger) Date: 2003-01-26 19:20
Currently in python-mode.el, py-which-shell (the
command used to start the python interpreter) is
limited to "python" or "jpython".  This patch makes it
possible to specify an arbitrary command at invocation
time, including a command that is specified relative to
the current path.

The problem: I am working on a project where jython is
embedded within our application.  The application
optionally allows console access to the jython
interpreter.  The application is started by running a
shell script which sets some environment variables then
invokes the jython interpreter with a large number of
arguments.

I would like to use py-shell within emacs to interact
with the application.  However, it is impractical to
start the application under py-shell for two reasons:

1. The command that needs to be invoked is neither
"python" nor "jython", and in fact would require many
arguments;

2. The command is not necessary installed in the PATH.

Similar problems occur even if one sometimes wants to
start an alternative python interpreter (such as
"python2" under redhat) or an interpreter that is not
in PATH (for example, if testing a new version of
python).

Therefore I have written a patch to python-mode.py that
changes the py-shell command as follows:

+ If there is no prefix argument, the usual python (or
jython) interpreter is invoked without further
interaction as before.

+ If there is a prefix argument, then the user is asked
what command to invoke with the "standard command" as
the default input:

    command: python -i

The user can edit the command to run whatever s/he
wants.

+ The command typed by the user is invoked via "$SHELL
-c 'COMMAND'" so that the user's program is first
sought in the emacs default directory (generally, the
directory related to the current emacs buffer).  This
allows the user to type, for example,

    command: ./my_test_interpreter -i

I am a novice at emacs lisp, but the patch is simple
(only about 10 lines changed) and it seems to work for
me.

The patch applies to the CVS version of python-mode.el
as of today (2003-01-26), but the same patch can be
applied to the version that was released with
Python-2.1.
msg42530 - (view) Author: Neal Norwitz (nnorwitz) * (Python committer) Date: 2003-02-02 18:11
Logged In: YES 
user_id=33168

How does this relate to patch 574750?
msg42531 - (view) Author: Michael Haggerty (mhagger) Date: 2003-02-03 10:45
Logged In: YES 
user_id=38106

The two patches are largely orthogonal.  This patch would
provide a workaround until patch 574750 is implemented and
also a fallback for people who still want to invoke
"jpython" rather than "jython".  If the implementer decides
to remove the whole "py-toggle-shells" mechanism, then this
patch would be a kind of substitute, but I am not advocating
that change.
msg42532 - (view) Author: Skip Montanaro (skip.montanaro) * (Python triager) Date: 2003-08-05 03:30
Logged In: YES 
user_id=44345

migrated to python-mode project.  follow it here:

https://sourceforge.net/tracker/
index.php?func=detail&aid=783259&group_id=86916&ati
d=581351
History
Date User Action Args
2022-04-10 16:06:11adminsetgithub: 37836
2003-01-26 19:20:43mhaggercreate