Как установить библиотеку и выполнить код с помощью POST-запроса? [Django]

Я пытаюсь выполнить код python, который я принимаю как пользовательский ввод и возвращаю вывод кода, но я хочу использовать библиотеку, чтобы найти временную сложность программы, но она явно выдает ошибку module not found, когда я пытаюсь выполнить код с библиотекой в нем.

Вот мой фронтенд, который я создал, используя react. enter image description here

Код на Python работает отлично, когда я не внедряю никаких библиотек. Я отправляю код в django через REST Api, выполняю код, записываю вывод в файл и возвращаю вывод, как показано ниже -

Мой файл viewsets.py -

from rest_framework.viewsets import ModelViewSet
from .models import Code
from .serializers import CodeSerializer
from rest_framework.decorators import action
from rest_framework.response import Response
from rest_framework.status import HTTP_200_OK, HTTP_204_NO_CONTENT
import sys


class CodeViewSet(ModelViewSet):

    queryset = Code.objects.all()
    serializer_class = CodeSerializer
    lookup_field = "id"

    @action(detail=True, methods=["HEAD", "GET", "POST"], url_path="runcode")
    def runcode(self, request, id=None):
        if request.method in ("GET", "HEAD"):
            return Response(status=HTTP_204_NO_CONTENT)
        else:
            code_data = self.get_object()

            try:
                orig_stdout = sys.stdout
                sys.stdout = open('file.txt', 'w')
                exec(code_data.code)
                sys.stdout.close()
                sys.stdout = orig_stdout
                output = open('file.txt', 'r').read()
            except Exception as e:
                sys.stdout.close()
                sys.stdout = orig_stdout
                output = e
            print(output)
        return Response(output, status=HTTP_200_OK)

Мой models.py для справки -

from django.db import models
from django_extensions.db.fields import AutoSlugField


class Code(models.Model):

    code = models.TextField()

Я выполняю код в моем viewsets.py, где я направил запрос на .../id/runcode url. Я хочу запустить скрипт или что-то подобное на POST-запросе, чтобы выполнение кода могло установить библиотеки на POST-запрос, чтобы не возникала ошибка ModuleNotFound при использовании внешних библиотек.

Пример -

Я принимаю ввод кода как -

def single_loop(n):
    for i in range(n):
        print(n+1)

и затем я хочу выполнить следующий код для вышеуказанного ввода -

import big_o

def single_loop(n):

    def single_loop(n):
        for i in range(n):
            print(n+1)

print(big_o.big_o(single_loop, big_o.datagen.n_, n_repeats=20, min_n=2, max_n=100)[0])
< <
Вернуться на верх