Files
wlan-lanforge-scripts/py-scripts/update_dependencies.py
2021-11-05 10:20:23 -07:00

59 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3
import subprocess
import argparse
import os
def main():
parser = argparse.ArgumentParser(
prog="update_dependencies.py",
formatter_class=argparse.RawTextHelpFormatter,
description='''
NAME: update_dependencies.py
PURPOSE: Installs python3 script package dependencies
OUTPUT: List of successful and unsuccessful installs
NOTES: Install as root
'''
)
parser.add_argument('--pyjwt', help='Install PyJWT which is necessary for GhostRequest', action="store_true")
args = parser.parse_args()
print("Installing Script Python3 Dependencies")
packages = ['pandas', 'plotly', 'numpy', 'cryptography', 'paramiko', 'bokeh','pyarrow', 'websocket-client', 'xlsxwriter',\
'pyshark', 'influxdb', 'influxdb-client', 'matplotlib', 'pdfkit', 'pip-search', 'pyserial', 'pexpect-serial' ,'scp',\
'dash', 'kaleido']
if args.pyjwt is True:
packages.append('pyjwt')
else:
print('Not installing PyJWT')
packages_installed = []
packages_failed =[]
subprocess.call("pip3 uninstall jwt", shell=True)
subprocess.call('pip3 install --upgrade pip', shell=True)
for package in packages:
if os.name == 'nt':
command = "pip3 install {} ".format(package)
else:
command = "pip3 install {} >/tmp/pip3-stdout 2>/tmp/pip3-stderr".format(package)
res = subprocess.call(command, shell=True)
if res == 0:
print("Package {} install SUCCESS Returned Value: {} ".format(package, res))
packages_installed.append(package)
else:
print("Package {} install FAILED Returned Value: {} ".format(package, res))
print("To see errors try: pip3 install {}".format(package))
packages_failed.append(package)
print("Install Complete")
print("Packages Installed Success: {}\n".format(packages_installed))
if not packages_failed:
return
print("Packages Failed (Some scripts may not need these packages): {}".format(packages_failed))
if __name__ == "__main__":
main()