41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
"""
|
|
Installation paths.
|
|
|
|
Map the .data/ subdirectory names to install paths.
|
|
"""
|
|
|
|
import os.path
|
|
import sys
|
|
import distutils.dist as dist
|
|
import distutils.command.install as install
|
|
|
|
def get_install_command(name):
|
|
# late binding due to potential monkeypatching
|
|
d = dist.Distribution({'name':name})
|
|
i = install.install(d)
|
|
i.finalize_options()
|
|
return i
|
|
|
|
def get_install_paths(name):
|
|
"""
|
|
Return the (distutils) install paths for the named dist.
|
|
|
|
A dict with ('purelib', 'platlib', 'headers', 'scripts', 'data') keys.
|
|
"""
|
|
paths = {}
|
|
|
|
i = get_install_command(name)
|
|
|
|
for key in install.SCHEME_KEYS:
|
|
paths[key] = getattr(i, 'install_' + key)
|
|
|
|
# pip uses a similar path as an alternative to the system's (read-only)
|
|
# include directory:
|
|
if hasattr(sys, 'real_prefix'): # virtualenv
|
|
paths['headers'] = os.path.join(sys.prefix,
|
|
'include',
|
|
'site',
|
|
'python' + sys.version[:3],
|
|
name)
|
|
|
|
return paths
|