[+] Support pip packages

This commit is contained in:
2024-07-25 17:32:00 +03:00
parent f1f80cc94c
commit 2af4681082
2 changed files with 17 additions and 2 deletions
+2 -2
View File
@@ -9,8 +9,8 @@
__title__ = 'KuiToi-Server' __title__ = 'KuiToi-Server'
__description__ = 'BeamingDrive Multiplayer server compatible with BeamMP clients.' __description__ = 'BeamingDrive Multiplayer server compatible with BeamMP clients.'
__url__ = 'https://github.com/kuitoi/kuitoi-Server' __url__ = 'https://github.com/kuitoi/kuitoi-Server'
__version__ = '0.4.6' __version__ = '0.4.7'
__build__ = 2459 # Я это считаю лог файлами __build__ = 2462 # Я это считаю лог файлами
__author__ = 'SantaSpeen' __author__ = 'SantaSpeen'
__author_email__ = 'admin@kuitoi.su' __author_email__ = 'admin@kuitoi.su'
__license__ = "FPA" __license__ = "FPA"
+15
View File
@@ -7,8 +7,11 @@
# Licence: FPA # Licence: FPA
# (c) kuitoi.su 2023 # (c) kuitoi.su 2023
import asyncio import asyncio
import importlib
import inspect import inspect
import os import os
import subprocess
import sys
import types import types
from contextlib import contextmanager from contextlib import contextmanager
from pathlib import Path from pathlib import Path
@@ -98,6 +101,18 @@ class KuiToi:
self.log.debug("Requests add_command") self.log.debug("Requests add_command")
return console.add_command(key, func, man, desc, custom_completer) return console.add_command(key, func, man, desc, custom_completer)
def install_and_import(self, package):
self.log.debug(f"Import package: {package}")
try:
# Попробуйте импортировать пакет
importlib.import_module(package)
except ImportError:
# Если пакет не установлен, установите его
subprocess.check_call([sys.executable, "-m", "pip", "install", package])
finally:
# Попробуйте еще раз импортировать пакет
return importlib.import_module(package)
class PluginsLoader: class PluginsLoader: