|
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 |
|
24 import os |
|
25 |
|
26 home = os.curdir # Default |
|
27 if 'HOME' in os.environ: |
|
28 home = os.environ['HOME'] |
|
29 elif os.name == 'posix': |
|
30 home = os.path.expanduser("~/") |
|
31 elif os.name == 'nt': # Contributed by Jeff Bauer |
|
32 if 'HOMEPATH' in os.environ: |
|
33 if 'HOMEDRIVE' in os.environ: |
|
34 home = os.environ['HOMEDRIVE'] + os.environ['HOMEPATH'] |
|
35 else: |
|
36 home = os.environ['HOMEPATH'] |
|
37 |
|
38 pythonrc = os.path.join(home, ".pythonrc.py") |
|
39 try: |
|
40 f = open(pythonrc) |
|
41 except IOError: |
|
42 pass |
|
43 else: |
|
44 f.close() |
|
45 execfile(pythonrc) |