Centos7.2常用python开发环境安装教程(anaconda+python3.6+mysql5.7+redis5.0+nginx1.18+uwsgi+flask)

服务器系统环境

# 查看系统版本
cat /etc/centos-release

anaconda安装

安装包下载

  1. 选择清华镜像源(直接下载anaconda官网速度较慢,国内镜像源下载速度快)https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D
  2. 根据需要下载对应版本安装包至本地,此处选择2020年7月发布的版本 Anaconda3-2020.07-Linux-x86_64.sh
  3. 上传本地安装包至服务器文件夹 /root 下

安装

命令行cd到你想安装的文件夹下,此处我选择安装到 /root 文件夹下,安装后anaconda会安装在  /root/anaconda3 路径下

cd /root/

命令行执行bash安装命令

bash Anaconda3-20XX.XX-Linux-x86_64.sh文件所在位置

回车确认许可,然后敲击回车查看更多的许可证信息,一直敲到询问“你是否接受接受许可条款吗?”

  • 回答no ==> game over,恭喜你,结束安装
  • 回答yes ==> continue,恭喜你,继续踩坑(即使是霸王条款也要选择接受,选此项)

输入yes,询问你是否安装在 /root/anaconda3 文件路径下,这是默认路径,可以修改,一般都选择默认路径(这样不麻烦)

  • 输入 回车 ==> 开始安装到 /root/anacodna3文件位置路径下(一般回车默认选此项)
  • 输入 ctrl+c ==> 中止安装程序
  • 如果你想自定义安装的文件位置路径PATH在其他地方 ==> 输入 ctrl+c ==> 中止安装程序 ==> 重新更换安装命令 ,参考文章前面部分 

【PS:安装过程可能会出现以下报错

[/root/anaconda3] >>>
PREFIX=/root/anaconda3
./package/Anaconda3-5.0.1-Linux-x86_64.sh: line 335: bunzip2: command not found
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

百度了一下,说缺少bip2安装环境

yum install -y bzip2

 结果报错:“ImportError: No module named site”

然后查了一下报错原因:Centos自带的python版本为2.7, 升级后yum与高版本的python不兼容,解决方法输入以下命令

unset PYTHONPATH
unset PYTHONHOME

问题解决,重新第一步安装过程。】

直至安装成功,然后询问“你是否希望将anaconda3添加到环境变量中”

  • 输入yes ==> 自动添加到环境变量中(建议选择此项)
  • 输入no ==> 后面需要手动添加到环境变量中,很麻烦,建议输入yes。同时这里是默认no,如果长时间没有回复这条命令,可能系统默认你选择了no,然后……emmm,我就是长时间没管它,结果自动回复了no,嫌手动添加麻烦又重新安装了一遍

安装完成,测试是否安装成功

# 查看conda版本
conda -V
# 查看conda第三方库安装包
conda list

安装成功。

开发环境创建

先用anaconda创建一个开发环境,选择对应的python版本,此处选择python3.6.4

# 查看已有环境
conda env list
# 创建新环境
conda create -n 环境名称 python=X.X

询问是否继续安装,输入y,开始安装相关包,安装过程较慢,请耐心等待(或者切换国内镜像源安装,速度更快)

 

创建完成,启动环境

# 启动环境
source activate ml
or
conda activate ml
# 退出环境
source deactivate
or
conda deactivate

安装其他常用包

pip install XXX

创建好虚拟 

uwsgi安装

 pip安装

pip install uwsgi

然后报错

改成安装包编译安装

  1. 官网https://uwsgi-docs.readthedocs.io/en/latest/Download.html选择稳定版本(Stable/LTS)下载 uwsgi-2.0.19.1.tar.gz,放至服务器 /root 文件夹下
  2. cd /root  # 进入文件夹
  3. tar -zxvf uwsgi-2.0.19.1.tar.gz  # 解压
  4. cd uwsgi-2.0.19.1  # 进入安装文件夹
  5. make  # 编译

表明安装成功。

如果返回编译中断,则需要安装依赖包

解决方案:

  1. yum install python-devel  # 安装依赖包,这个安装包十分重要,ubuntu系统下为 python-dev
  2. make   # 继续编译
  3. 结果显示uWSGI is ready,安装成功

然后启动conda虚拟环境进行安装 pip install uwsgi,竟然成功了

访问测试:

 从一个简单的 "Hello World" 开始,在某一文件夹 /home/user/pyproject 创建文件 foobar.py,代码如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

uWSGI Python 加载器将会搜索的默认函数 application 。

接下来我们启动 uWSGI 来运行一个 HTTP 服务器,将程序部署在HTTP端口 9090 上:

/root/anaconda3/envs/ml/bin/uwsgi --http :9090 --wsgi-file foobar.py

访问9090端口,重启一个窗口,不要把正在运行的应用中断 

curl 0.0.0.0:9090

输出 Hello World,uwsgi正确安装。

uwsgi其他bug解决文档

nignx安装

nginx版本选择

​ 1)Mainline version:nginx主力版本,为开发版

​ 2)Stable version:稳定版,在实际生产过程中选择此版本进行安装

​ 3)Legacy version:历史版本

安装流程

  1. gcc安装
    gcc是对源码进行编译的插件,如果没有按照需要执行:
    yum install gcc-c++
  2. PCRE pcre-devel 安装
    yum install -y pcre pcre-devel
  3. zlib 安装
    yum install -y zlib zlib-devel
  4. 下载nginx,打开http://nginx.org/en/download.html选择稳定版本(Stable version)nginx-1.18.0 进行下载,并放至服务器 /root 文件夹下。或者直接 wget -c http://nginx.org/download/nginx-1.18.0.tar.gz 下载
  5. cd /root  进入安装包文件夹,解压安装包  tar -zxvf nginx-1.18.0.tar.gz
  6. 进入安装文件夹 cd nginx-1.18.0
  7. 编译源文件
    ./configure
  8. 编译安装
    make
    make install
  9. 安装完成,查看nginx安装位置
    whereis nginx   
  10. 启动nginx方法一:进入安装文件夹,启动、停止nginx(每次需手动启动停止)

    直接启动方法:

    cd /usr/local/nginx/sbin/
    ./nginx -t  #先检测nginx的配置是否正确,显示ok和successful即配置正确  
    ./nginx # 启动, 没有日志输出 ,说明启动正常, 如果出现异常请参考配置时提示的错误日志路径,查看错误信息
    ./nginx -s stop   # 停止
    ./nginx -s quit    # 退出
    ./nginx -s reload   # 重启

     

    或者创建软连接启动方法,此方法省去了每次进入nginx安装文件夹的麻烦:

    # 创建软连接
    ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
    # 查看/usr/sbin/nginx文件,会返回其软连接
    ll /usr/sbin/nginx 
    # lrwxrwxrwx. 1 root root 27 11月 01 10:36 /usr/sbin/nginx -> /usr/local/nginx/sbin/nginx
    # 查看软连接是否成功,成功返回nginx配置是否正确信息,不成功则返回nginx未找到命令
    nginx -t

     

  11. 启动nginx方法二:配置nginx开机启动(一劳永逸)

    # 切换到/lib/systemd/system/目录
    cd /lib/systemd/system/
    # 创建nginx.service文件vim nginx.service
    vi nginx.service

     按i进入insert模式,复制以下代码

    [Unit]
    Description=nginx 
    After=network.target 
     
    [Service] 
    Type=forking 
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx reload
    ExecStop=/usr/local/nginx/sbin/nginx quit
    PrivateTmp=true 
     
    [Install] 
    WantedBy=multi-user.target

     按ESC退出insert模式,输入:wq保存并退出

    # 执行systemctl enable nginx.service使nginx开机启动
    systemctl enable nginx.service

    systemctl start nginx.service    启动nginx

    systemctl stop nginx.service    结束nginx

    systemctl restart nginx.service    重启nginx

  12. 查询nginx进程,nginx默认配置启动成功后,会有两个进程,一个主进程(守护进程),一个工作进程。主进程负责管理工作进程,工作进程负责处理用户的http请求。
    ps aux|grep nginx
  13. 查看80端口进程
    netstat -tlnp |grep 80 
  14. 查看防火墙开放端口
    firewall-cmd --list-all    # 查看ports,为空说明端口均没开启

  15. linux centos7  默认防火墙是关闭的,设置了开启端口后一定要重启防火墙,否则端口开启会不起作用

    查看已开启的端口

    firewall-cmd --list-ports  或者    firewall-cmd --list-all    # 查看ports,为空说明端口均没开启

    查看防火墙状态

    firewall-cmd --state  # 返回running证明开启,否则为关闭状态,需要开启

    开启防火墙

    systemctl start firewalld

    开启端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent  # 返回succes即为成功

    重启防火墙

    firewall-cmd --reload

  16. 访问测试,由于在服务器安装,没有界面,所以使用curl访问

    curl localhost

    结果显示访问成功,至此安装成功

flask安装

pip安装

pip install flask

 

flask测试:

 在你的文件夹下新建一个flask_demo.py

from flask import Flask


app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

运行程序

python flask_demo.py

 

不要退出这个窗口,打开新窗口访问

curl http://127.0.0.1:5000/

 

 访问成功。

web简单部署与配置

 

mysql安装

centos7 安装 Mysql 5.7.27,详细完整教程

centos 7 下的 MYSQL5.7版本sql_mode=only_full_group_by问题

redis安装

Centos7安装Redis

[redis]-centos7 安装redis主从及配置哨兵模式

CentOS7下使用Sentinel实现Redis集群高可用

参考文档

  1. Nginx+uwsgi+flask部署实战  https://blog.csdn.net/u011089760/article/details/90178091

相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页