[SciPy-dev] Python (Enthought Edition) for Windows test release
Fernando Perez
Fernando.Perez at colorado.edu
Fri Jan 21 15:15:18 EST 2005
John Hunter wrote:
> FYI, I'm getting an ipython warning error when I use
>
> C:\Enthon23\python.exe C:\Enthon23\Scripts\ipython -p enthought
>
> WARNING: Program configuration file enthought not found
>
> Note I did use a non-standard install path. Where on win32 should the
> enthought config file reside?
From the manpage:
-profile|p <name>
Assume that your config file is ipythonrc-<name> (looks in
current dir first, then in IPYTHONDIR). This is a quick way to
keep and load multiple config files for different tasks, espe-
cially if you use the include option of config files. You can
keep a basic IPYTHONDIR/ipythonrc file and then have other
'profiles' which include this one and load extra things for
particular tasks. For example:
1) $HOME/.ipython/ipythonrc : load basic things you always
want.
2) $HOME/.ipython/ipythonrc-math : load (1) and basic math-
related modules.
3) $HOME/.ipython/ipythonrc-numeric : load (1) and Numeric and
plotting modules.
Since it is possible to create an endless loop by having
circular file inclusions, IPython will stop if it reaches 15
recursive inclusions.
The code in ipython which tries to answer what 'home' is follows (from
IPython.genutils):
def get_home_dir():
"""Return the closest possible equivalent to a 'home' directory.
For Posix systems, this is $HOME, and on NT it's $HOMEDRIVE\$HOMEPATH.
Currently only Posix and NT are implemented, a HomeDirError exception is
raised for all other OSes. """ #'
if os.name == 'posix':
return os.environ['HOME']
elif os.name == 'nt':
# For some strange reason, win9x returns 'nt' for os.name.
try:
return os.path.join(os.environ['HOMEDRIVE'],os.environ['HOMEPATH'])
except:
try:
# Use the registry to get the 'My Documents' folder.
import _winreg as wreg
key = wreg.OpenKey(wreg.HKEY_CURRENT_USER,
"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders")
homedir = wreg.QueryValueEx(key,'Personal')[0]
key.Close()
return homedir
except:
return 'C:\\'
elif os.name == 'dos':
# Desperate, may do absurd things in classic MacOS. May work under DOS.
return 'C:\\'
else:
raise HomeDirError,'support for your operating system not implemented.'
All of this means that under win32, if $HOMEDRIVE\$HOMEPATH is not defined,
then the registry key
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders\Personal is used. Whether this is a good idea or not, I don't know.
I putzed around until I got somehting that returned reasonable-looking
answers, and that was the end of it. I'm open to suggestions on better
choices for this. Under posix, you just get $HOME, and you're done.
Once this is answered, then ipython makes a .ipython/ subdir below this HOME
directory, and that's where it looks for profiles (which must be named
ipythonrc-FOO to be recognized by 'ipython -p FOO'). So the enthought profile
should be a file called 'ipythonrc-enthought', located in HOME/.ipython/.
FWIW on my friend's system, with a default install, this worked just right.
I hope this helps, and please let me know if you guys need anything else on this.
Cheers,
f
More information about the SciPy-Dev
mailing list