Source code for psyrun.utils.venv

"""Management of virtual environments."""

import os


[docs]def init_virtualenv(venv=None): """Activates a virtual environment. This function won't initialize a virtual environment when run on Travis-CI which is detected with the ``CI`` environment variable. Parameters ---------- venv : str, optional Name of virtualenv to activate. If None, the virtualenv given in the environment variable ``VIRTUAL_ENV`` will be used. If that environment variable is not set either, no virtualenv will be activated. """ if os.environ.get('CI', False): return if venv is None: venv = os.environ.get('VIRTUAL_ENV', None) if venv is not None: activate_script = os.path.join(venv, 'bin', 'activate_this.py') if not os.path.exists(activate_script): activate_script = os.path.join(venv, 'Scripts', 'activate_this.py') with open(activate_script, 'r') as f: source = f.read() exec( compile(source, activate_script, 'exec'), dict(__file__=activate_script))