docker镜像ubuntu18.04中uwsgi安装问题
拉取的镜像是ubuntu:18.04。里面有python2.7和python3.6,但是项目在python3.8上。因此用以下命令安装了python3.8
apt install python3.8
然后安装了virtualenv创建了python38的虚拟环境。 使用
pip3 install uwsgi
安装出错。错误没有保存下来。大概是setup.py错误,然后pip说这是包的问题不是pip的问题。 然后在网上找到一个apt安装方式
apt-get install uwsgi-plugin-python
安装成功。uwsgi的版本是2.0.15
注意
这时的uwsgi是安装在主目录下的,虚拟环境是没有的。 然后在虚拟环境下运行,得到以下日志。
chdir() to /home/blogapi
your memory page size is 4096 bytes
detected max file descriptor number: 1048576
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
dropping root privileges after socket binding
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
dropping root privileges after plugin initialization
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
The -s/--socket option is missing and stdin is not a socket.
其实这是socket和http选用的问题。日志是这样,但是uwsgi运行不起来。换到socket,能正常运行。但是nginx连接的时候,又报错了。
--uwsgi -- unavailable modifier requested: 0--
这是没有解释器的错误。上文说了,uwsgi是在主目录下的,虚拟环境调用了,但是它找不到解释器。 又找了一个解决方法, 先以下安装,咦!这不是装过了吗?
apt-get install uwsgi-plugin-python
再在uwsgi的配置文件xxx.ini中添加下面一行
plugin=python
天,这还是错误的。这个python是什么,指的什么。我以为可以指向虚拟环境的python38,更改路径。还是错误。这行不通。还是得在虚拟环境下安装uwsgi 好,又找到下面的解决方法。
apt-get install libpython3.8-dev
pip install uwsgi
就此,虚拟环境的uwsgi装上了。主目录的uwsgi可以删掉了。
|