blob: 596f0a74628eaa144a6437fec644a2d00df4a392 [file] [log] [blame]
Guido van Rossum02840fd1997-08-28 14:32:14 +00001"""Hook to allow user-specified customization code to run.
2
3As a policy, Python doesn't run user-specified code on startup of
4Python programs (interactive sessions execute the script specified in
Guido van Rossumbf453222000-03-30 15:00:33 +00005the PYTHONSTARTUP environment variable if it exists).
Guido van Rossum02840fd1997-08-28 14:32:14 +00006
7However, some programs or sites may find it convenient to allow users
8to have a standard customization file, which gets run when a program
9requests it. This module implements such a mechanism. A program
Guido van Rossum625f40d1997-08-30 20:04:42 +000010that wishes to use the mechanism must execute the statement
Guido van Rossum02840fd1997-08-28 14:32:14 +000011
12 import user
13
14The user module looks for a file .pythonrc.py in the user's home
15directory and if it can be opened, execfile()s it in its own global
16namespace. Errors during this phase are not caught; that's up to the
17program that imports the user module, if it wishes.
18
19The user's .pythonrc.py could conceivably test for sys.version if it
20wishes to do different things depending on the Python version.
21
22"""
Brett Cannone3b19402008-05-08 20:36:09 +000023from warnings import warnpy3k
24warnpy3k("the user module has been removed in Python 3.0", stacklevel=2)
25del warnpy3k
Guido van Rossum02840fd1997-08-28 14:32:14 +000026
27import os
28
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000029home = os.curdir # Default
Raymond Hettinger54f02222002-06-01 14:18:47 +000030if 'HOME' in os.environ:
Guido van Rossum02840fd1997-08-28 14:32:14 +000031 home = os.environ['HOME']
Neal Norwitz609ba812002-09-05 21:08:25 +000032elif os.name == 'posix':
33 home = os.path.expanduser("~/")
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000034elif os.name == 'nt': # Contributed by Jeff Bauer
Raymond Hettinger54f02222002-06-01 14:18:47 +000035 if 'HOMEPATH' in os.environ:
36 if 'HOMEDRIVE' in os.environ:
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000037 home = os.environ['HOMEDRIVE'] + os.environ['HOMEPATH']
38 else:
39 home = os.environ['HOMEPATH']
Guido van Rossum02840fd1997-08-28 14:32:14 +000040
41pythonrc = os.path.join(home, ".pythonrc.py")
42try:
43 f = open(pythonrc)
44except IOError:
45 pass
46else:
47 f.close()
48 execfile(pythonrc)