PYTHONSTARTUP ignored by python -i file.py?
David M. Cooke
cookedm at physics.mcmaster.ca
Thu Sep 14 13:52:38 EDT 2000
At some point, hzhu at users.sourceforge.net (Huaiyu Zhu) wrote:
> On 13 Sep 2000 16:59:33 -0400, David M. Cooke <cookedm at physics.mcmaster.ca>
> wrote:
>
> >from the man page:
> >
> > -i When a script is passed as first argument or the -c
> > option is used, enter interactive mode after exe
> > cuting the script or the command. It does not read
> > the $PYTHONSTARTUP file. This can be useful to
> > inspect global variables or a stack trace when a
> > script raises an exception.
>
> Wouldn't it be a good idea to have two options, one for whether it's
> interactive, and one for whether to read startup file, with sensible
> defaults of the latter depending on the former?
>
Good point.
In the meantime, you could use this Python script instead (name
it pythoni or something)
-----
#!/usr/bin/env python
import sys,os
import os.path
modfile = sys.argv[1]
pystartup = os.environ['PYTHONSTARTUP']
env = os.environ.copy()
modpath = os.path.abspath(os.path.dirname(modfile))
if env.has_key('PYTHONPATH'):
env['PYTHONPATH'] = modpath + ':' + env['PYTHONPATH']
else:
env['PYTHONPATH'] = modpath
modname, ext = os.path.splitext(os.path.basename(modfile))
os.execvpe("python",["python", "-i", "-c",
"execfile('%s'); from %s import *"%(pystartup,modname)], env)
------
Then 'pythoni path/to/script/file.py' will do what you want
(hopefully; this wasn't tested extensively)
--
|>|\/|<
----------------------------------------------------------------------------
David M. Cooke
cookedm at mcmaster.ca
More information about the Python-list
mailing list