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

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. 安装并配置Samba

    1. 安装 samba ~$sudo apt-get install samba 2. 修改 samba 的配置文件 ~$sudo gedit /etc/samba/smb.conf 添加如下内容 [ ...

  2. Unit2-窝窝牌电梯

    全文共2329字,推荐阅读时间10~15分钟. 文章共分四个部分: 作业分析 评测相关 重构策略 课程体验感受 作业分析 Unit2要求我们模拟现实生活中的电梯调度情景,迭代路径是单电梯->多电 ...

  3. flex弹性模型

    flex模型是w3c最新提出的一种盒子模型,很好的解决了普通模型的一些弊端. 一.比较两种盒子模型: demo: 给div添加边框,观察他们的区别 <body> <div class ...

  4. JavaScript常用项目(更新至19.11.17)

    目录 项目一:鼠标拖动方块 项目二:网页显示键入字母 项目三:实现滚播图 项目四:   本地数据记事本 项目一:鼠标拖动方块 代码: <!DOCTYPE html> <html> ...

  5. 在Centos7中,从主机 Windows 上无法远程访问 Linux 上rabbitmq的解决方法

    当在 Linux 上配置好 Rabbitmq服务器后,如果从主机中无法访问到 Linux 中的Rabbitmq服务器时,需要做如下的检查: 1. Rabbitmq是否启动成功 在控制台输入: ps - ...

  6. VS Code项目中通过npm包的方式共享代码片段的方案实现

    VS Code项目中通过npm包的方式共享代码片段的方案实现 上周在 "VS Code项目中共享自定义的代码片段方案" 的文章中提到过一个共享代码片段的方案,上周经过调研后并没有发 ...

  7. phpmyadmin系列渗透思路连载(一)

    当拿到phpmyadin的站点后,我一般会尝试一下几种攻击手法: 1.通过弱口令进入后台,尝试into outfile写入一句话 条件:(1)有写的权限    (2)知道web绝对路径    (3)w ...

  8. 11、vue-路由

    1.路由: 官方提供一个插件,构建单页面应用,主要实现得功能页面得切换.组件得跳转 2.vue中得路由:vue-router包,如果是脚手架进行搭建得,那么是不需要安装vue-router这个包得,因 ...

  9. java scoket Blocking 阻塞IO socket通信一

    package bhz.bio; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; p ...

  10. 微信小程序点击保存图片到本地相册——踩坑

    在微信小程序中要保存图片到本地相册,需要获取相册权限. 总之整个功能实现下来需要如下几个小程序的API:wx.getSetting,wx.authorize,wx.openSetting,wx.dow ...