我安装了以皇帝模式运行的 uWSGI。Vassals 使用不同的 python 版本,所以我不能在 uWSGI 二进制文件中嵌入 Python 插件。
话虽如此,我想在其中一个 vassal 中使用 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:未定义符号:向上
/usr/local/lib/uwsgi/greenlet_plugin.so:未定义符号:向上在日志中。
//编辑
我发现python插件必须在设置中的asyncio和greenlet之前启用,所以错误不再发生,但greenlet不起作用,当前greenlet中没有父级。
我还能尝试做什么?我敢打赌,在 python3.4 插件中嵌入 asyncio 和 greenlet 会起作用,但我不知道该怎么做,甚至不知道它是否可能。
目前我正在使用带有内置必需插件的第二皇帝,但由于平台限制,我不能再使用该解决方案。