欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

linux--python3安装以及虚拟环境配置

程序员文章站 2022-03-21 17:13:35
linux下python3的编译安装以及项目运行 普通版安装编译python3并运行项目 ......

linux下python3的编译安装以及项目运行

普通版安装编译python3并运行项目

最好指定目录进行操作
1.解决系统的基础开发工具,防止python3编译过程出错
    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.获取python3的源代码,去官网下载即可
先cd 到opt下
    wget https://www.python.org/ftp/python/3.6.7/python-3.6.7.tar.xz

3.解压缩源代码包,进入源码包
    xz -d  python-3.6.7.tar.xz  #去掉.xz压缩后缀
    tar -zxvf python-3.6.7.tar  #解压缩 tar xvjf  python-3.6.7.tgz 
    cd python-3.6.7

4.编译三部曲,几乎所有的linux软件,编译安装都是这个步骤,nginx,redis都是这样
    第一曲:指定安装路径
        执行configure脚本文件 ,指定软件的安装路径
            ./configure --prefix=/opt/python367/

    第二曲:编译源代码
        指定make指令 ,针对当前文件夹下的makefile开始读取
        输入 make 即可 
        
    第三曲:开始安装
        这一步才是生成解释器的步骤
        make install 

5.配置path环境变量,让命令可以快捷执行
    取出当前path的值
    注意!!!!!path的值是自上而下,从前往后的读取顺序,这里要和虚拟环境配置有关了
    echo $path 
    
    把python3的路径,放到最前面,因为虚拟环境的创建的时候,可能会有坑,
    path的加载顺序是自上而下的
    [root@linux bin]# echo  $path
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

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

    vim  /etc/profile  在最底行,写入如下信息
    path="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
#path的组成部分:1. 第一个冒号前:安装的python3下的bin目录  2.第二个冒号后:echo  $path的执行结果
        
    读取/etc/profile  #让他永久生效 
    命令: source  /etc/profile  #用source命令,去读这个文件 内容,让变量生效 

6.上传crm代码到linux
    xftp6软件直接上传到linux服务器
    或可以用xftp或者压缩文件后,用lrzsz 

7.解决crm运行的模块依赖
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  django==1.11.23 
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  pymysql 
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple  django-multiselectfield
    ......
    
8.安装mariadb 
    rpm手动安装,很恶心,解决以来关系
    
    源代码编译安装(指定安装路径,可以*选择最新的软件版本,可以扩展第三方高级的功能)
    yum安装方便,自动解决依赖(安装路径默认,软件仓库版本可能过低)
    
        yum install  mariadb-server  mariadb  -y  

    通过yum安装的软件,都可以通过systemctl 去管理
    
        systemctl  start  mariadb   #启动mariadb
        systemctl  stop  mariadb    #关闭mariadb
        systemctl  restart  mariadb  #重启mariadb
    

9.导出windows的crm数据,传递给linux进行导入
    1.先进入cmd
    2.输入mysql
    3.执行 show variables like "%char%";  #character_sets_dir d:\program files\feiq\mysql\mysql-5.6.45-winx64\mysql-5.6.45-winx64\share\charsets\ 这就是mysql安装路径
    4.先找到mysql的安装路径,进入mysql下的bin目录,bin目录下打开cmd,执行下面命令
    5.mysqldump -u root -p   crm  >  crm.sql  #指定数据库导出的命令

10。传输ignb.sql文件到linux后,进行数据导入
    1.数据库导入
        方式1:  命令形式导入 
            得先创建好数据库 
            1.systemctl start mariadb  #启动mariadb,可能用,
            2.mysql #进入mysql
            3.create database  crm; #建库
            4.指定数据库导入数据
              mysql -uroot -p  crm  <  crm.sql 

        方式2:交互式终端的导入数据
            create database  ignb;
            use ignb ;
            source /opt/ignb.sql ;  
       #方式一不行用方式二,能用哪个用哪个
    
    2.数据库配置
        1.进入项目的settings.py
        2.执行 vim settings.py
        3.allowed_hosts = ['*'] # * 代表 允许所有主机访问,可以设置一些地址进行限制
          databases = {
                'default': {
                    'engine': 'django.db.backends.mysql',
                    'name': 'crm', #在之前创建的数据库名字不要错
                    'port':3306,
                    'host':'0.0.0.0', #改成这个,正常运行数据库的服务器地址
                    'user':'root',
                    'password':'' # 密码可以设置为空,也可以设置一个密码
                        }
                    }

11.启动crm项目
    #启动前关闭防火墙
            1:查看防火状态
                systemctl status firewalld
                service  iptables status

            2:暂时关闭防火墙
                systemctl stop firewalld
                service  iptables stop

            3:永久关闭防火墙
                systemctl disable firewalld
                chkconfig iptables off

            4:重启防火墙
                systemctl enable firewalld
                service iptables restart  

    python3 manage.py runserver 0.0.0.0:8000
    # 可能或报下面数据库方面的错
    you have 14 unapplied migration(s). your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
run 'python manage.py migrate' to apply them.
    
    解决:执行 python3 manage.py migrate 
    

虚拟环境下安装编译python3并运行项目

python的虚拟环境其实就是多个python解释器而已,不会影响操作系统

# linux虚拟环境启动代码发布
1.用virtualenvwrapper工具分别启动两个python项目
    1.得先编译安装python3
        https://www.cnblogs.com/pyyu/p/7402145.html #可以参考博客
    
    2.安装编译所需的开发环境
        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
    
    
    3.下载python3的源代码 
        wget https://www.python.org/ftp/python/3.6.7/python-3.6.7.tar.xz
    
    4.对源代码解压缩 
        [root@root_linux ]# tar  -zxvf  python-3.6.7.tgz 
        或者tar xvjf  python-3.6.7.tgz 
        
    5.切换进入源码
        cd python-3.6.7

    6.开始编译三部曲了
        第一曲:指定软件安装位置
            # 新建了mypro文件
            [root@root_linux python-3.6.7]
             # ./configure --prefix=/opt/python367/
                
        第二曲:开始编译 
                make 
                
        第三曲:编译安装,生成最终的可以使用的python3.6.7的解释器
                make install 
    
    7.配置path环境变量,可以直接输入python3就进入/mypro/python367/bin/python3
        向要永久生效,配置环境变量,编辑/etc/profile 文件,开机就会读取这个文件中的所有变量定义
        vim  /etc/profile  
        
        写入path变量的值修改
        path="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
    
    8.退出回话,重新登录linux,即可加载新的path
    
    9.安装virtualenvwrapper工具 
         pip3 install -i https://pypi.douban.com/simple   virtualenvwrapper 
    
    10.升级pip3版本命令
        pip3  install --upgrade pip 
    
    11.配置环境变量,加载虚拟环境工具
        vim /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安装脚本
        
    12.重新登录后,生效配置
        exit
    
    13.使用虚拟环境命令,创建新的虚拟环境用于运行项目
        [root@root_linux ~]# mkvirtualenv  mypro666
        [root@root_linux ~]# mkvirtualenv  mypro888
    
    14.可以用workon命令切换不同的虚拟环境 
    
    15.上传本地开发好的代码,到linux服务器上,安装lrzsz传输工具,用于windows和linux传递文件
        yum install lrzsz -y 
        
    16.压缩windows环境开发的代码,传递至服务器
        rz  #直接输入此命令,接受windows的代码
        
    16.安装项目运行所需的所有模块
        1.导出windows的模块
            pip3 freeze  >  requirements.txt  
            
        2.在linux 上安装此文件,自动读取文件中所有的模块版本信息
            pip3 install -r requirements.txt
            
        3.也可以用土方法,解决环境依赖问题
            可以用python3 manage.py runserver 0.0.0.0:9000,调试代码,看需要哪些模块,如果报错哪个模块没有就下载哪个模块
                
            pip3 install -i https://pypi.douban.com/simple  django==1.11.23 
            pip3 install -i https://pypi.douban.com/simple  pymysql
            pip3 install -i https://pypi.douban.com/simple  django-multiselectfield

    17.解决数据库问题,启动数据库
        yum install mariadb-server  mariadb  -y  #安装数据库
        systemctl start mariadb  #启动数据库 
    
    18.检查mysql是否启动
        查进程:ps   -ef  |grep  mysql
            
        查端口:
            (mypro888) [root@root_linux ignb]# netstat -tunlp  |grep   3306
            tcp        0      0 0.0.0.0:3306            0.0.0.0:*               listen      27687/mysqld     
                    
        查看mariadb数据库的服务状态:systemctl status  mariadb
            
        
    19.尝试再次启动项目,是否正常
        可能还会遇见密码不一致的问题,需要修改settings.py  

        linux的ip地址:192.168.16.85    127.0.0.1    0.0.0.0(绑定这台机器所有的ip地址)
        存在多个网卡
        windows的ip地址:192.168.16.64    127.0.0.1    0.0.0.0   

    20.修改django的配置文件settings.py修改  allow_hosts=['*']

    21.启动django程序
        python3 manage.py runserver 0.0.0.0:8000

    22.运行bighg项目,上传bighg代码到linux服务器,解决项目运行所需的依赖
        pip3 install -i  https://pypi.tuna.tsinghua.edu.cn/simple  django==1.11.23
        python3 manage.py runserver
        pip3 install -i  https://pypi.tuna.tsinghua.edu.cn/simple  channels
        python3 manage.py runserver
        pip3 install -i  https://pypi.tuna.tsinghua.edu.cn/simple gitpython
        pip3 install -i  https://pypi.tuna.tsinghua.edu.cn/simple paramiko

    23.在linux上安装git
        yum install git -y 
    
    24.再次运行项目,代码发布启动
        python3 manage.py runserver 0.0.0.0:9000

            
make &&   make install   #前面正确执行了,没报错,后面正常执行
make || make install     #前面执行失败了,才会执行后面的