Index: Lib/site.py =================================================================== --- Lib/site.py (revision 78731) +++ Lib/site.py (working copy) @@ -289,14 +289,12 @@ if sys.platform == "darwin": # for framework builds *only* we add the standard Apple # locations. - if 'Python.framework' in prefix: + from sysconfig import get_config_var + framework = get_config_var('PYTHONFRAMEWORK') + if framework and framework + '.framework' in prefix: sitepackages.append( - os.path.expanduser( - os.path.join("~", "Library", "Python", - sys.version[:3], "site-packages"))) - sitepackages.append( - os.path.join("/Library", "Python", - sys.version[:3], "site-packages")) + os.path.join("/Library", framework, + "lib", "python"+sys.version[:3], "site-packages")) return sitepackages def addsitepackages(known_paths): Index: Lib/sysconfig.py =================================================================== --- Lib/sysconfig.py (revision 78731) +++ Lib/sysconfig.py (working copy) @@ -84,7 +84,7 @@ _EXEC_PREFIX = os.path.normpath(sys.exec_prefix) _CONFIG_VARS = None _USER_BASE = None -_PROJECT_BASE = abspath(os.path.dirname(sys.executable)) +_PROJECT_BASE = abspath(os.path.dirname(os.path.realpath(sys.executable))) if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): _PROJECT_BASE = abspath(os.path.join(_PROJECT_BASE, pardir)) @@ -152,6 +152,11 @@ base = os.environ.get("APPDATA") or "~" return env_base if env_base else joinuser(base, "Python") + if sys.platform == 'darwin': + framework = get_config_var('PYTHONFRAMEWORK') + if framework is not None: + return joinuser("Library/%s/%d.%d"%(framework, sys.version[:3]) + return env_base if env_base else joinuser("~", ".local")