|
1 """Hook to allow user-specified customization code to run. |
|
2 |
|
3 As a policy, Python doesn't run user-specified code on startup of |
|
4 Python programs (interactive sessions execute the script specified in |
|
5 the PYTHONSTARTUP environment variable if it exists). |
|
6 |
|
7 However, some programs or sites may find it convenient to allow users |
|
8 to have a standard customization file, which gets run when a program |
|
9 requests it. This module implements such a mechanism. A program |
|
10 that wishes to use the mechanism must execute the statement |
|
11 |
|
12 import user |
|
13 |
|
14 The user module looks for a file .pythonrc.py in the user's home |
|
15 directory and if it can be opened, execfile()s it in its own global |
|
16 namespace. Errors during this phase are not caught; that's up to the |
|
17 program that imports the user module, if it wishes. |
|
18 |
|
19 The user's .pythonrc.py could conceivably test for sys.version if it |
|
20 wishes to do different things depending on the Python version. |
|
21 |
|
22 """ |
|
23 from warnings import warnpy3k |
|
24 warnpy3k("the user module has been removed in Python 3.0", stacklevel=2) |
|
25 del warnpy3k |
|
26 |
|
27 import os |
|
28 |
|
29 home = os.curdir # Default |
|
30 if 'HOME' in os.environ: |
|
31 home = os.environ['HOME'] |
|
32 elif os.name == 'posix': |
|
33 home = os.path.expanduser("~/") |
|
34 elif os.name == 'nt': # Contributed by Jeff Bauer |
|
35 if 'HOMEPATH' in os.environ: |
|
36 if 'HOMEDRIVE' in os.environ: |
|
37 home = os.environ['HOMEDRIVE'] + os.environ['HOMEPATH'] |
|
38 else: |
|
39 home = os.environ['HOMEPATH'] |
|
40 |
|
41 pythonrc = os.path.join(home, ".pythonrc.py") |
|
42 try: |
|
43 f = open(pythonrc) |
|
44 except IOError: |
|
45 pass |
|
46 else: |
|
47 f.close() |
|
48 execfile(pythonrc) |