build: script to create Python virtual env

This commit is contained in:
Nick Bolton
2024-09-21 13:46:33 +01:00
parent f8d14edcdb
commit 0f91f69036
3 changed files with 32 additions and 2 deletions

View File

@ -131,8 +131,12 @@ def ensure_in_venv(script_file, auto_create=False):
if not in_venv():
if not os.path.exists(VENV_DIR):
if not auto_create:
print("Hint: Run the `install_deps.py` script first.")
raise RuntimeError(f"Virtual environment not found at: {VENV_DIR}")
print(
"The Python virtual environment (.venv) needs to be created before you can "
"run this script.\n"
"Please run: scripts/setup_venv.py"
)
sys.exit(1)
print(f"Creating virtual environment at {VENV_DIR}")
venv.create(VENV_DIR, with_pip=True)

25
scripts/setup_venv.py Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env python3
# Deskflow -- mouse and keyboard sharing utility
# Copyright (C) 2024 Symless Ltd.
#
# This package is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# found in the file LICENSE that should have accompanied this file.
#
# This package is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import lib.env as env
env.ensure_in_venv(__file__, auto_create=True)
env.install_requirements()
import lib.colors as colors
print(colors.SUCCESS_TEXT, "Python virtual environment is ready.")