def django_manage_run(virtualenv, path, command, user, interactive=False): """ Run a Django management command from a Python virtual environment. - virtualenv: Absolute path of Python virtualenv. - path: Absolute path of Django project. - command: Management command to run. - user: User to sudo as. - interactive: Whether to honour interactive prompts. """ manage_py = os.path.join(path, "manage.py") cmd = "python %s %s" % (manage_py, command) if not interactive: cmd = "%s --noinput" % cmd with context_managers.virtualenv(virtualenv): sudo(cmd, user=user)
def pip_requirements(): """ Install project requirements using PIP into a Python virtual environment. """ require( "virtualenv_path", "requirements_path", "http_proxy", "https_proxy", "sudo_user", ) cmd = "pip install --quiet --requirement %s" % env.requirements_path # append packages url if specified if env.get("packages_url") is not None: cmd += " -f %s" % env.get("packages_url") with context_managers.proxy(env.http_proxy, env.https_proxy): with context_managers.virtualenv(env.virtualenv_path): sudo(cmd, user=env.sudo_user)
def install_requirements(): with virtualenv(): run("pip install -r requirements.txt")
def deploy(): with virtualenv(): run("git pull") run("pip install -r requirements.txt") supervisor.restart()