in dh_virtualenv/deployment.py [0:0]
def __init__(self,
package,
extra_urls=[],
preinstall=[],
extras=[],
pip_tool='pip',
upgrade_pip=False,
index_url=None,
setuptools=False,
python=None,
builtin_venv=False,
sourcedirectory=None,
verbose=False,
extra_pip_arg=[],
extra_virtualenv_arg=[],
use_system_packages=False,
skip_install=False,
install_suffix=None,
requirements_filename='requirements.txt',
upgrade_pip_to='',
):
self.package = package
install_root = os.environ.get(ROOT_ENV_KEY, DEFAULT_INSTALL_DIR)
self.install_suffix = install_suffix
self.debian_root = os.path.join(
'debian', package, install_root.lstrip('/'))
if install_suffix is None:
self.virtualenv_install_dir = os.path.join(install_root, self.package)
self.package_dir = os.path.join(self.debian_root, package)
else:
self.virtualenv_install_dir = os.path.join(install_root, install_suffix)
self.package_dir = os.path.join(self.debian_root, install_suffix)
self.bin_dir = os.path.join(self.package_dir, 'bin')
self.local_bin_dir = os.path.join(self.package_dir, 'local', 'bin')
self.preinstall = preinstall
self.extras = extras
self.upgrade_pip = upgrade_pip
self.upgrade_pip_to = upgrade_pip_to
self.extra_virtualenv_arg = extra_virtualenv_arg
self.log_file = tempfile.NamedTemporaryFile()
self.verbose = verbose
self.setuptools = setuptools
self.python = python
self.builtin_venv = builtin_venv
self.sourcedirectory = '.' if sourcedirectory is None else sourcedirectory
self.use_system_packages = use_system_packages
self.skip_install = skip_install
self.requirements_filename = requirements_filename
# We need to prefix the pip run with the location of python
# executable. Otherwise it would just blow up due to too long
# shebang-line.
python = self.venv_bin('python')
self.pip_preinstall_prefix = [python, self.venv_bin('pip')]
self.pip_prefix = [python, self.venv_bin(pip_tool)]
self.pip_args = ['install']
if self.verbose:
self.pip_args.append('-v')
if index_url:
self.pip_args.append('--index-url={0}'.format(index_url))
self.pip_args.extend([
'--extra-index-url={0}'.format(url) for url in extra_urls
])
self.pip_args.append('--log={0}'.format(os.path.abspath(self.log_file.name)))
# Keep a copy with well-supported options only (for upgrading pip itself)
self.pip_upgrade_args = self.pip_args[:]
# Add in any user supplied pip args
self.pip_args.extend(extra_pip_arg)