• Linux04 /创建虚拟环境、在linux环境运行Python项目


    Linux04 /创建虚拟环境、在linux环境运行Python项目

    1. 大体流程

    1. windows上的代码,放到linux上,运行要做哪些事

      安装python3
      安装crm的模块
      上传crm代码
      mysql(mariadb)
      
    2. 本地开发环境

      安装python3
      安装crm的模块
      上传crm代码
      mysql(mariadb)
      
    3. 预生产服务器环境

      安装python3
      安装crm的模块
      上传crm代码
      mysql(mariadb)
      
    4. 正式线上服务器环境

      安装python3
      安装crm的模块
      上传crm代码
      mysql(mariadb)
      
    5. 总结:

      虚拟机的模板克隆解决环境问题
      docker镜像去解决环境部署问题 
      
      在windows本地打包一个镜像
      

    2. linux环境安装python3

    • 解决系统的基础开发工具,防止python3编译过程出错

      1、安装依赖:

      yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
      

      2、确保机器可以上网,在线下载软件包

      ip addr show   # 测试是否可以上网
      

      3、配置好阿里云的yum仓库,yum源,加速下载,提供大量的软件包

      配置yum源的过程:
      
      centos的默认yum仓库路径是 /etc/yum.repos.d  ,在这目录下,第一层文件夹中的repo文件会识别为仓库文件
      
      1.获取阿里云的yum源
      打开网址https://opsx.alibaba.com/mirror
      
      2.找到第一个仓库
      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      
      3.下载第二个仓库
      wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
      
      4.生成yum缓存,加速以后下载
      yum makecache 
      
    • 获取python3的源代码,去官网下载即可

      wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
      
      # wget 在线下载一个资源 
      
    • 解压缩源代码包,进入源码包

      xz -d  Python-3.6.7.tar.xz  # 去掉.xz压缩后缀
      tar -xvf Python-3.6.7.tar  # 解压缩 
      cd Python-3.6.7   # 进入源码包
      
    • 编译三部曲,几乎所有的linux软件,编译安装都是这个步骤,nginx,redis都是这样

      第一曲:指定安装路径

      ./configure --prefix=/opt/python367/
      # 执行configure脚本文件 ,指定软件的安装路径
      

      第二曲:开始编译

      make
      # 指定make指令 ,针对当前文件夹下的makefile开始读取
      

      第三曲:开始安装

      make install 
      # 编译安装,生成最终的可以使用的python3.6.7的解释器
      
    • 配置PATH环境变量,让命令可以快捷执行

      1、取出当前PATH的值

      echo $PATH 
      
      # 代码示例:
      [root@s24_linux bin]# echo  $PATH
      /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      

      2、修改PATH的值,永久修改,写入到/etc/profile ,每次用户登录都加载这个文件,因此变量永久生效

      vim  /etc/profile  # 在最底行,写入如下信息
      PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
      
      # 把python3的路径,放到最前面,因为虚拟环境的创建的时候,可能会有坑,PATH的加载顺序是自上而下的
      

      3、读取/etc/profile -- 让其永久生效

      source  /etc/profile   # 用source命令,去读这个文件 内容,让变量生效 
      
      # 或者 退出会话,重新登录linux,即可加载新的PATH
      

    3. 创建虚拟环境

    1. 虚拟环境

    • python虚拟环境就是管理python解释器,python的虚拟环境,其实就是在机器上,方便的创建出多个解释器,每个解释器运行一个项目,互相之间不受影响

    2. virtualenv

    • virtualenv工具,可以方便的创建,使用,删除也很方便

    • low版虚拟环境管理工具:virtualenv

      1、virtualenv安装

      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  virtualenv 
      

      2、创建虚拟环境 venv ,用于运行django1

      virtualenv  --no-site-packages --python=python3    venv1  
      
      参数说明:
      --no-site-packages  # 这个参数 ,创建虚拟环境是干净隔离的
      --python=python3    # 这个--python参数,是指定解释器的版本
      venv1 是虚拟环境的名字,文件夹的名
      

      3、激活虚拟环境,需要执行如下命令

      source /opt/venv1/bin/activate  # 这是激活虚拟环境的命令
      
      deactivate 	# 退出虚拟环境
      

      4、在venv1这个虚拟环境下,运行一个django1版本

      # 得先安装django模块
      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  django==1.11.9
      
    • **高级版虚拟环境工具:virtualenvwrapper ,以后用这个就行 *****

      1、virtualenvwrapper 安装

      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  virtualenvwrapper
      

      2、配置系统的全局变量,加载virtualenvwrapper这个工具

      vim /etc/profile 写入如下内容后先刷新一个配置文件source /etc/profile

      WORKON_HOME=~/Envs   # 设置virtualenv的统一管理目录
      VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   # 添加virtualenvwrapper的参数,生成干净隔绝的环境
      VIRTUALENVWRAPPER_PYTHON=/opt/python367/bin/python3      # 指定python解释器
      source /opt/python367/bin/virtualenvwrapper.sh           # 执行virtualenvwrapper安装脚本
      

      3、virtualenvwrapper 常用操作

      mkvirtualenv  venv1   # 创建虚拟环境venv1 
      mkvirtualenv  venv2   # 创建虚拟环境venv2 
      mkvirtualenv  venv3   # 创建虚拟环境venv3
      workon 	        # 激活虚拟环境,支持tab键补全
      
      cdvirtualenv  	# 进入虚拟环境家目录
      lsvirtualenv   	# 列出当前所有的虚拟环境
      lssitepackages 	# 列出当前解释器,所有的模块文件夹 
      cdsitepackages	# 进入当前解释器的模块文件夹 
      

    4. 打包源环境模块

    • 打包源环境模块简述:

      保证开发环境和生产环境的模块一致性的方法	
      保证windows的模块和linux的模块的一致性
      
    • 导出前环境所有的模块

      pip3 freeze >  requirements.txt  # 这是导出解释器所有模块信息的命令
      
    • 安装以上文件中所有的模块

      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple   -r requirements.txt  
      

    5. 解决数据库问题:安装/启动mariadb

    • 安装mariadb /三种方式

      1、rpm:rpm手动安装,很恶心,解决依赖关系
      
      2、源代码编译安装:指定安装路径,可以自由选择最新的软件版本,可以扩展第三方高级的功能
      
      3、yum安装方便,自动解决依赖(安装路径默认,软件仓库版本可能过低)
            yum install  mariadb-server(服务端的软件名)  mariadb(客户端软件名)  -y  
      
    • 启动mariadb数据库,通过yum安装的软件,都可以通过systemctl 去管理

      systemctl  start/stop/restart  mariadb
      
    • mysql 的root远程访问权限

      grant all privileges on *.* to root@'%' identified by '';
      flush privileges;
      

      如果远程还是访问不到数据库的话,修改配置文件 vim /etc/my.cnf

      [mysqld]
      datadir=/var/lib/mysql
      socket=/var/lib/mysql/mysql.sock
      symbolic-links=0
      bind-address = 0.0.0.0   # 确保不是本地回环地址
      [mysqld_safe]
      log-error=/var/log/mariadb/mariadb.log
      pid-file=/var/run/mariadb/mariadb.pid
      bind-address = 0.0.0.0
      
      !includedir /etc/my.cnf.d
      

    6. 上传项目代码到linux

    1. 将项目传到linux环境,这里以crm为例

      1.可以用xftp用xftp工具更省心
      2.压缩文件后,用lrzsz,lrzsz是windows提供的工具,和xshell结合,只能是在windows使用
      3.如果是mac,就用scp命令
      
    2. 解决crm运行的模块依赖/老土方法,用模块打包方式导入

      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  django==1.11.9 
      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  pymysql 
      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  django-multiselectfield
      
    3. 导出windows的crm数据,传递给linux进行导入

      # 这给命令是发给操作系统的,把windows 中的mysql数据库导出来是一个crm.sql文件
      
      mysqldump -u root -p   crm  >  crm.sql  # 指定数据库导出的命令
      
    4. 传输crm.sql文件到linux后,进行数据导入

      方式1: 命令形式导入

      # 1、得先创建好数据库 ,进入mysql后再敲打,它是sql语句  
      create database  crm;
      
      # 2、指定数据库导入数据
      mysql -uroot -p  crm  <  crm.sql   # 在linux中敲打,他是linux的命令 
      

      方式2:交互式终端的导入数据

      # 1、得先创建好数据库
      create database  crm;
      
      # 2、导入数据
      use crm ;
      source /opt/crm.sql ;  
      
    5. 修改django的配置文件settings.py

      1.确保mariadb数据库的密码和settings配置文件密码一致
      2.修改ALLOW_HOSTS为:ALLOW_HOSTS=['*']
      
    6. 启动crm项目

      python3 manage.py runserver 0.0.0.0:8000
      
  • 相关阅读:
    mvc中使用Hangfire处理后台任务
    mvc中图片的保存和显示
    WebVTT 及 HTML5 <track> 元素简介
    vs2015发布网站至azure web应用服务
    jquery上传大文件至azure blob存储
    dapper利用DynamicParameters构建动态参数查询
    aspnetcore的那些actionresult们
    vs2015 debugger,unable to attach to application iisexpress.exe
    ASP.NET’s compilation system
    Introducing .NET Standard
  • 原文地址:https://www.cnblogs.com/liubing8/p/11803329.html
Copyright © 2020-2023  润新知