Files
paparazzi/setup.py
Ewoud Smeur 4ebd2b6852 fix errors during pprz installation (#3525)
* fix errors during pprz installation
* Use Wayland for high DPI screens
* remove start.py script
* fix dfu flash stm32
2025-08-29 13:58:04 +02:00

55 lines
1.8 KiB
Python

import venv
import os
import sys
import subprocess
import argparse
import shutil
ENV_NAME = 'pprzEnv'
def run(args):
if args.clean:
if os.path.exists(ENV_NAME):
print("Cleaning previous venv.")
shutil.rmtree(ENV_NAME)
else:
print("No previous venv to clean.")
print("Creating a virtual environment for Paparazzi...")
venv.create(ENV_NAME, with_pip=True, system_site_packages=args.system)
# installing requirements
cmd = [f'./{ENV_NAME}/bin/pip', 'install', '-r' , 'requirements.txt']
result = subprocess.run(cmd, check=False)
if result.returncode:
print("Failed to create venv!")
else:
print("venv successfully created.")
cmd = ["git", "submodule", "update", "--init", "./sw/ext/pprzlink"]
result = subprocess.run(cmd, check=False)
if result.returncode:
print("Failed to update submodule pprzlink!")
# installing pprzlink
print("Installing pprzlink...")
cmd = [f'./{ENV_NAME}/bin/pip', 'install', '-e' , 'sw/ext/pprzlink/lib/v2.0/python']
result = subprocess.run(cmd, check=False)
if result.returncode:
print("Failed to install pprzlink!")
else:
print("pprzlink successfully installed.")
if not os.path.exists(f'./{ENV_NAME}/bin/calibrate.py'):
os.symlink('../../sw/tools/calibration/calibrate.py', f'./{ENV_NAME}/bin/calibrate.py')
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="This script will setup the python environment for Paparazzi")
parser.add_argument('-s', '--system', action='store_true', help="Use system site packages.")
parser.add_argument('-c', '--clean', action='store_true', help="Delete the previous virtual environment before recreating it.")
args = parser.parse_args()
run(args)