2
0
mirror of https://github.com/frappe/bench.git synced 2024-06-03 08:50:54 +00:00

fix: Use venv module instead of virtualenv

Only migrate-env requires virtualenv wrapper. However, it can be
installed and run manually too. Virtualenv wrapper is patched in debian
to change the path of bins - which venv is free from.
This commit is contained in:
Gavin D'souza 2022-08-02 11:54:00 +05:30
parent ec9d8588ca
commit f60c2d0def
5 changed files with 10 additions and 16 deletions

View File

@ -30,7 +30,6 @@ from bench.utils.bench import (
restart_process_manager,
remove_backups_crontab,
get_venv_path,
get_virtualenv_path,
get_env_cmd,
)
from bench.utils.render import job, step
@ -71,7 +70,7 @@ class Bench(Base, Validator):
@property
def python(self) -> str:
return get_env_cmd("python", bench_path=self.name)
return get_env_cmd("python*", bench_path=self.name)
@property
def shallow_clone(self) -> bool:
@ -347,15 +346,11 @@ class BenchSetup(Base):
click.secho("Setting Up Environment", fg="yellow")
frappe = os.path.join(self.bench.name, "apps", "frappe")
virtualenv = get_virtualenv_path(verbose=verbose)
quiet_flag = "" if verbose else "--quiet"
if not os.path.exists(self.bench.python):
if virtualenv:
self.run(f"{virtualenv} {quiet_flag} env -p {python}", cwd=self.bench.name)
else:
venv = get_venv_path(verbose=verbose, python=python)
self.run(f"{venv} env", cwd=self.bench.name)
venv = get_venv_path(verbose=verbose, python=python)
self.run(f"{venv} env", cwd=self.bench.name)
self.pip()

View File

@ -96,7 +96,7 @@ def setup_backups():
Bench(".").setup.backups()
@click.command("env", help="Setup virtualenv for bench")
@click.command("env", help="Setup Python environment for bench")
@click.option(
"--python", type=str, default="python3", help="Path to Python Executable."
)

View File

@ -234,7 +234,7 @@ def run_frappe_cmd(*args, **kwargs):
f = get_env_cmd("python", bench_path=bench_path)
sites_dir = os.path.join(bench_path, "sites")
is_async = False if from_command_line else True
is_async = not from_command_line
if is_async:
stderr = stdout = subprocess.PIPE
else:
@ -247,11 +247,7 @@ def run_frappe_cmd(*args, **kwargs):
stderr=stderr,
)
if is_async:
return_code = print_output(p)
else:
return_code = p.wait()
return_code = print_output(p) if is_async else p.wait()
if return_code > 0:
sys.exit(return_code)

View File

@ -172,6 +172,9 @@ def migrate_env(python, backup=False):
path = os.getcwd()
python = which(python)
virtualenv = which("virtualenv")
if not virtualenv:
raise FileNotFoundError("`virtualenv` not found. Install it and try again.")
pvenv = os.path.join(path, nvenv)
# Clear Cache before Bench Dies.

View File

@ -130,7 +130,7 @@ The setup commands used for setting up the Frappe environment in context of the
- **sudoers**: Add commands to sudoers list for allowing bench commands execution without root password
- **env**: Setup virtualenv for bench. This sets up a `env` folder under the root of the bench directory.
- **env**: Setup Python virtual environment for bench. This sets up a `env` folder under the root of the bench directory.
- **redis**: Generates configuration for Redis
- **fonts**: Add Frappe fonts to system
- **config**: Generate or over-write sites/common_site_config.json