ubantu18 python3.7 uwsgi flask 运行环境
sudo apt update
sudo apt upgrade -y
安裝必要的包
sudo apt install build-essential -y
sudo apt install libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev -y
sudo apt-get install zlib1g-dev
#python3安装pandas库出现Could not import the lzma module.
sudo apt-get install lzma-dev
sudo apt-get install liblzma-dev
安裝python3.7
wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
tar -xzvf Python-3.7.7.tgz
cd Python-3.7.7
sudo ./configure --enable-optimizations
#sudo ./configure --prefix=/usr/local/python3.7 --enable-optimizations
sudo make
sudo make install
#如果需要重新安裝,请执行下部命令,在执行上部分命令
#make distclean
更新pip
pip3 install --upgrade pip
替换系统python 软连接
ln -sb /usr/local/bin/python3 /usr/bin/python3
ln -sb /usr/local/bin/pip3 /usr/bin/pip3
ln -sb /usr/local/bin/pip /usr/bin/pip
或
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
python -V
问题:subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
find / -name lsb_release
rm -rf /usr/bin/lsb_release
安装虚拟环境
pip install virtualenv
创建目录
mkdir Myproject
cd Myproject
创建纯净的独立运行环境venv3,安装python3,在Myproject下生成venv3文件夹
virtualenv --python=python3 venv3
进入虚拟环境(venv)Myproject
source venv3/bin/activate
安装第三方包
pip install flask==1.1.2
#此时pip的包都会安装到venv环境下,venv是针对Myproject创建的
退出venv3环境
deactivate
导入依赖包
#导出
pip freeze > requirements.txt
#导入
pip install -r requirements.txt
uwsgi配置
pip install uwsgi --no-cache-dir
#检查uwsgi版本
uwsgi --version
#检查uwsgi python版本
uwsgi --python-version
创建uwsgiconfig.ini
放到项目下
[uwsgi]
base = /opt/app/my_project/
chdir = %(base)
virtualenv = %(base)venv3/
http = :5008
wsgi-file = app.py
module = app
file = app.py
callable = app
master = false
processes = 1
threads = 2
daemonize = %(base)logs/server.log
log-truncate = true
disable-logging = true
need-app = true
pcre-jit = true
buffer-size = 32768
py-autoreload = 1
vacuum = true
pidfile = %(base)uwsgi.pid
reload-mercy = 8
harakiri = 60
uid = test
gid = test
启动uwsgi
#### 启动
uwsgi -d --ini uwsgiconfig.ini
#### 重启:
uwsgi --reload uwsgi.pid
#### 停止:
uwsgi --stop uwsgi.pid
1.测试是否启动
netstat -ntpl
2.查看进程号
ps aux | grep uwsgi
cat /opt/app/my_project/uwsgi.pid
3.杀死进程
kill -9 81392
问题:
ModuleNotFoundError: No module named bz2
ModuleNotFoundError: No module named '_lzma'
apt-get install libbz2-dev
##### 重新编译python
export CFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib64"
export LD_LIBRARY_PATH=/usr/lib64
make distclean
sudo ./configure --enable-optimizations
sudo make
sudo make install
###或者
sudo ./configure --prefix=/usr/local/python3.7 --enable-optimizations
sudo make
sudo make install
单独启动flask
python3 -m flask run --host=192.168.120.1 --port=5001