I have an installation of uWSGI that is running in emperor mode. Vassals are using different python versions, so I can't have a Python plugin embedded in uWSGI binary.
Having said that, I want to use asyncio loop engine in one of vassals, but I can't figure it out how to run asyncio plugin and greenlet plugin that are not embedded.
What I've tried so far:
Embedding asyncio and greenlet into uWSGI, using:
CFLAGS="-I/usr/local/include/python3.4" make PYTHON=python3.4 asyncio
to build uWSGI. But that will also embed python plugin and I don't want it.
Building asyncio and uWSGI as external plugins using:
PYTHON=python3.4 ./uwsgi --build-plugin "plugins/greenlet greenlet" PYTHON=python3.4 ./uwsgi --build-plugin "plugins/greenlet greenlet"
to build plugins, but that plugins will fail to load with:
/usr/local/lib/uwsgi/asyncio_plugin.so: undefined symbol: up
/usr/local/lib/uwsgi/greenlet_plugin.so: undefined symbol: upin logs.
// Edit
I've figured out that python plugin must be enabled before asyncio and greenlet in settings, so error is not occuring anymore, but greenlet is not working, there is no parent in current greenlet.
What else can I try to do? I bet that embedding asyncio and greenlet in python3.4 plugin will work, but I don't know how to do it or if it is even possible.
Currently I'm using second emperor with built-in required plugins, but I can't use that solution any longer due to limitations of platform.