Можно ли запустить вызываемую функцию/функцию в другой виртуальной среде в Python?Python

Программы на Python
Ответить
Anonymous
 Можно ли запустить вызываемую функцию/функцию в другой виртуальной среде в Python?

Сообщение Anonymous »

У меня есть WebAPI, в котором находится внешняя библиотека, и API должен иметь возможность обрабатывать несколько версий внешней библиотеки. Я могу придумать два способа решения этой проблемы:
  • Иметь несколько экземпляров сервера API для каждой версии библиотеки и использовать обратный прокси-сервер для маршрутизации трафика к определенной версии на основе параметра URL.
  • В рамках Python API создает виртуальную среду для каждой версии библиотеки, которую вы хотите запустить, а затем, когда вы вызываете конечную точку, он запускает мой код внутри процесса в соответствующей виртуальной среде.
Я склоняюсь к тому, чтобы попытаться заставить #2 работать, если это возможно, поскольку его будет проще развернуть.
Для этого я хотел бы иметь возможность создать экземпляр FastAPI, где он мог бы получить версию пакета, который вы хотите запустить, затем запустить функцию в процессе и вернуть результат. Минимальный пример:
from fastapi import FastAPI
import numpy as np

app = FastAPI()

@app.get("/{version}/version")
def get_version(version: str) -> str:
"""
This function will create a venv for the numpy version if it doesnt exist,
and then activate that venv and run the code within as a process on that
virtual environment.
"""
return np.__version__


Подробнее здесь: https://stackoverflow.com/questions/793 ... ironment-i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»