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

1. 大体流程

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

    1. 安装python3
    2. 安装crm的模块
    3. 上传crm代码
    4. mysqlmariadb
  2. 本地开发环境

    1. 安装python3
    2. 安装crm的模块
    3. 上传crm代码
    4. mysqlmariadb
  3. 预生产服务器环境

    1. 安装python3
    2. 安装crm的模块
    3. 上传crm代码
    4. mysqlmariadb
  4. 正式线上服务器环境

    1. 安装python3
    2. 安装crm的模块
    3. 上传crm代码
    4. mysqlmariadb
  5. 总结:

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

2. linux环境安装python3

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

    1、安装依赖:

    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、确保机器可以上网,在线下载软件包

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

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

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

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

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

    第一曲:指定安装路径

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

    第二曲:开始编译

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

    第三曲:开始安装

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

    1、取出当前PATH的值

    1. echo $PATH
    2. # 代码示例:
    3. [root@s24_linux bin]# echo $PATH
    4. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

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

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

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

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

3. 创建虚拟环境

1. 虚拟环境

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

2. virtualenv

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

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

    1、virtualenv安装

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

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

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

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

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

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

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

    1、virtualenvwrapper 安装

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

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

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

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

    3、virtualenvwrapper 常用操作

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

4. 打包源环境模块

  • 打包源环境模块简述:

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

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

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

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

  • 安装mariadb /三种方式

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

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

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

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

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

6. 上传项目代码到linux

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

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

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

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

    方式1: 命令形式导入

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

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

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

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

    1. python3 manage.py runserver 0.0.0.0:8000

Linux04 /创建虚拟环境、在linux环境运行Python项目的更多相关文章

  1. linux环境运行java项目并有外部引用jar

    eclipse目录结构: linux目录结构: lib目录结构: 其中除了IMT_ENCODING_DSP.jar其余的都是外部引用的jar IMT_ENCODING_DSP.jar是java项目打包 ...

  2. Linux环境下Python的安装过程

    Linux环境下Python的安装过程 前言 一般情况下,Linux都会预装 Python了,但是这个预装的Python版本一般都非常低,很多 Python的新特性都没有,必须重新安装新一点的版本,从 ...

  3. linux环境下 python环境import找不到自定义的模块

    linux环境下 python环境import找不到自定义的模块 问题现象: Linux环境中自定义的模块swport,import swport 出错.swport模块在/root/sw/目录下. ...

  4. 发布项目到 Linux 上运行 Core 项目

    发布项目到 Linux 上运行 Core 项目 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win ...

  5. linux环境安装python

    linux环境下安装python3,一步一步来吧! 安装python3 安装readline-devel依赖 ,用于解决python3安装完成后,退格和方向键乱码问题 yum install read ...

  6. 服务器(Linux)上运行python总结

    跑实验换了几次服务器了,每次遇到相似问题都要重新百度,而且每次百度搜索出的顺序都不一样,又得重新找半天,这次把遇到的问题都总结一下. 1.准备 PuTTY和FileZilla FileZilla使用F ...

  7. 利用virtualenvwrapper创建虚拟环境出现错误“/usr/bin/python: No module named virtualenvwrapper”

    Linux:CentOS7 python: 系统默认python版本2.7,利用python启动 自己安装python版本3.8,利用python3启动 问题描述: 在上述环境中利用virtualen ...

  8. jmeter(二十五)linux环境运行jmeter并生成报告

    jmeter是一个java开发的利用多线程原理来模拟并发进行性能测试的工具,一般来说,GUI模式只用于创建脚本以及用来debug,执行测试时建议使用非GUI模式运行. 这篇博客,介绍下在linux环境 ...

  9. Python_01 在DOS环境运行python程序

    >怎么在DOS环境运行一个python程序 >>在文本编辑器中编辑程序,最后保存成   文件名.py  的格式 >>在DOS界面下找到源程序所在的路径,然后用  pyth ...

随机推荐

  1. (二)JPA实体类主键生成策略

    在JPA中,配置实体类的主键的生成策略使用 @GeneratedValue @Id @Column(name = "id") @GeneratedValue(strategy = ...

  2. Android开发学习笔记Intent 一

    Inten的概念 1.Intent是Android四大组件直接沟通的桥梁 2.Intent是一种运行时绑定(runtime binding)机制 Intent对象的属性 Itent的种类 Inten过 ...

  3. Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式

    导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 代码中存在死循环 ...

  4. jwt 工具类

    public class TokenUtils { private Logger logger = LoggerFactory.getLogger(this.getClass()); /** * 签名 ...

  5. 基于web网站项目的性能测试结果分析

    业务背景: 最近公司研发了一款对并发要求比较高的web项目,需要对其压力测试,模拟线上可能存在的问题,这个过程中遇到一些很多问题,这里重新梳理一下思路,希望能给遇到同样问题的小伙伴提供一个参考. 工具 ...

  6. 手把手教你学Numpy,搞定数据处理——收官篇

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Numpy专题第6篇文章,我们一起来看看Numpy库当中剩余的部分. 数组的持久化 在我们做机器学习模型的研究或者是学习的时候,在完成 ...

  7. 经典卷积神经网络算法(5):ResNet

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  8. 第一章、认识Shiro

    Shiro简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Securi ...

  9. JDK8--05:方法引用和构造器引用

    在上一篇文章中,说过JDK8中内置的函数时接口,为了方便使用,JDK8还提供了方法引用和构造器引用,来简化lambda的写法 1.方法引用 方法引用说明:lambda表达式中的方法已经在其他方法中已经 ...

  10. python计算矩阵均匀分布程度

    计算N×M(建议维度大于100*100)的0,1矩阵均匀分布程度,值由0到1表示不均匀到均匀 import numpy as np def make_rand_matrix(side=20): # 制 ...