Linux生产环境安装Python

基础环境的准备

# 更新所有的软件包 
yum update -y
# 安装Python源文件的编译环境
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel libxml* libssl-dev
yum install openssl11 openssl11-devel

下载Python的源文件、编译和安装

# 在centos当前用户目录中新建目录
mkdir -p ~/soft/python
# 进入目录
cd ~/soft/python
# 使用wget下载Python
wget https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tgz
# 解压缩
tar -zxvf Python-3.12.3.tgz
# 进入目录
cd Python-3.12.3
# 新建一个安装目录
mkdir /usr/local/python3
# 编译前的configure设置         -- 指定路径
./configure --prefix=/usr/local/python3
# 编译
make
# 安装
make install
# 可能会遇到的坑: ModuleNotFoundError: No module named '_ctypes'
# sudo yum install libffi-devel -y
# make install

# 确认安装是否成功!
cd /usr/local/python3/bin 
# 测试python3是否能运行
./python3
# 测试pip3是否能运行
./pip3
# 为Python3和pip3创建软连接
ln -s /usr/local/python3/bin/python3.12 /usr/bin/python3 
ln -s /usr/local/python3/bin/pip3.12 /usr/bin/pip3

pip的完善

# 更改pip3的下载源 
cd ~
# 新建一个.pip目录 
mkdir .pip
# 进入.pip目录 
cd .pip
# 新建一个pip配置文件 
# touch pip.conf
vim pip.conf
# 添加配置文件的内容
[global]
index-url=http://pypi.douban.com/simple 
trusted-host = pypi.douban.com
# 升级pip3
pip3 install -upgrade pip

准备虚拟环境

mkdir -p  /opt/pysite/
cd /opt/pysite/
# =========== 步骤01:安装virtualenv包======== 
# 安装
pip3 install virtualenv
# 创建virtualenv的软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv 
# =========== 步骤02:准备虚拟环境的目录    ========
# 新建目录
mkdir -p /opt/pysite/env 
# 进入目录
cd /opt/pysite/env
# =========== 步骤03:创建虚拟环境    ======== 
# 创建python的虚拟环境,名称为:pyweb 
virtualenv --python=/usr/bin/python3 pyweb
# ===========步骤04:进入并激活虚拟环境    ======== 
# 进入
cd pyweb/bin
# 激活虚拟环境 
source activate
# 退出虚拟环境
deactivate

打包代码并上传

# 1. 在开发的环境中导出当前项目的依赖包到requirements.txt
pip freeze > requirements.txt

准备项目的运行环境

# 先进入虚拟环境    -- pyweb
cd /opt/pysite/env/pyweb/bin 
source activate
# 进入项目的目录-- 示例的项目名称为:detectionproject 
cd /opt/pysite/detectionproject
# 按照requirements.txt准备运行环境 
pip install -r requirements.txt 
# 安装uwsgi
pip3 install uwsgi
# 为uwsgi建立软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
# python manage.py runserver 阿里云内网ip:80
# 浏览器 公网ip:80/user/login

创建uwsgi的配置文件

xxx_uwsgi.ini

[uwsgi]
#http=127.0.0.1:10001  #如果是http,通过proxy_pass http链接
socket=127.0.0.1:10001 #如果是socket,通过nginx配置uwsgi_pass socket链接
wsgi-file=/opt/pysite/xxx/app.py
callable=app
touch-reload=/opt/pysite/xxx/
#最大请求数,最多请求5000次就重启进程,以防止内存泄漏
max-requests=5000
#请求超时时间,超过60秒关闭请求
harakiri=60
#进程的数量
processes=1
#线程数
threads = 2
#记录pid的文件
pidfile=/opt/pysite/sock/xxx.pid
buffer-size = 32768
#日志最大50M
log-maxsize=50000000
#配置虚拟环境路径,如果是在虚拟环境下启动,这个一定要配,不配会有些包找不到,应用会报错。可以在uwsgi.log文件中看报错信息
virtualenv =/opt/pysite/env/xxx
#uwsgi日志文件,如果是通过supervisor托管,daemonize配置需要屏蔽
#daemonize=/home/flask_web/uwsgi.log
#项目更新后,自动加载
python-autoreload=1
#状态检测地址
#stats = 127.0.0.1:9191

配置Nginx

#=========== 配置Nginx ============= 
....
server {
   listen       80; # 对外的80端口
   server_name  xxxx;  # 服务器的地址 
   #charset koi8-r;
   #access_log  /var/log/nginx/host.access.log  main; 
   location / {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:9999;
          uwsgi_param UWSGI_SCRIPT detectionproject.wsgi;
          uwsgi_param UWSGI_CHDIR /opt/pysite/detectionproject;#项目路径 
 }
   location /static/ {
   alias /opt/pysite/detectionproject/apps/static/; 
 }
   ..... 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值