У меня есть установка uWSGI, которая работает в режиме императора. Вассалы используют разные версии python, поэтому я не могу использовать плагин python, встроенный в двоичный файл uWSGI.
Имея это, я хочу использовать механизм цикла asyncio в одном из вассалов, но я не могу понять, как запустить плагин asyncio и плагин greenlet, которые не встроены.
Что я пробовал до сих пор:
-
встраивание asyncio и greenlet в uWSGI, используя:
CFLAGS="-I/usr/local/include/python3.4" make PYTHON=python3.4 asyncio
построить uWSGI. Но это также будет включать плагин python, и я не хочу его.
-
Построение asyncio и uwsgi в качестве внешних плагинов с использованием:
PYTHON=python3.4 ./uwsgi --build-plugin "plugins/greenlet greenlet" PYTHON=python3.4 ./uwsgi --build-plugin "plugins/greenlet greenlet"
для создания плагинов, но плагины не смогут загружаться с помощью:
/usr/local/lib/uwsgi/asyncio_plugin.so: undefined символ: вверх
/usr/local/lib/uwsgi/greenlet _plugin.so: undefined символ: вверхв журналах.
//Правка
Я выяснил, что плагин python должен быть включен до настроек asyncio и greenlet в настройках, поэтому ошибка больше не происходит, но greenlet не работает, родитель в текущей родословной отсутствует.
Что еще я могу попытаться сделать? Я уверен, что внедрение asyncio и greenlet в плагине python3.4 будет работать, но я не знаю, как это сделать или если это возможно.
В настоящее время я использую второго императора со встроенными необходимыми плагинами, но я больше не могу использовать это решение из-за ограничений платформы.