main
Justus Jan Nico Wolff 2024-06-14 22:07:08 +02:00
parent 18b8ee5554
commit 9502ee247e
2 changed files with 24 additions and 11 deletions

34
main.py
View File

@ -10,20 +10,27 @@ import subprocess
import pkg_resources
import ast
required = open("requirements.txt", 'r')
required = ast.literal_eval(required.read())
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed
def installmodules(required, silent=False):
required = required
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed
if missing:
while True:
ans = input(f"Einige benötigte Module sind nicht installiert ({missing}), installieren per pip? Y/N ")
if ans == "y":
if missing:
if silent == False:
while True:
ans = input(f"Einige benötigte Module sind nicht installiert ({missing}), installieren per pip? Y/N ")
if ans == "y":
python = sys.executable
subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
break
elif ans == "n":
exit()
else:
python = sys.executable
subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
break
elif ans == "n":
exit()
installmodules(ast.literal_eval(open("requirements.txt", 'r').read()))
import mtTkinter as tk
from tkinter import ttk as tkk
from tkinter import messagebox
@ -954,11 +961,15 @@ def ungridobjtrees():
def loadplugins(GUIe=True):
global APIPLUG
print("loading plugins...")
for pluginname in os.listdir(plugindir):
if pluginname.split(".")[1] == "plg":
file = open(plugindir+"/"+pluginname, 'r')
plugindata = file.read()
plugindata = ast.literal_eval(plugindata)
print(plugindata["name"])
print("loading...")
installmodules(plugindata["modules"], True)
file.close()
if "init" in plugindata and GUIe == True:
exec(plugindata["init"], globals())
@ -966,6 +977,7 @@ def loadplugins(GUIe=True):
APIPLUG.append(plugindata["API"])
if "run" in plugindata:
RUNPLUG.append(plugindata["run"])
print("done.")
return [APIPLUG, RUNPLUG]
def GUIinit():

View File

@ -1,5 +1,6 @@
{
"name": "pluginname",
"modules": [],
"permissions": [
1,
2,