2.1 虚拟环境介绍
问题: 我要想在一台机器上面安装两个版本的 django, 该怎么做?
解决方案:
再买一台机器, 在这台机器上安装 python3 解释器, 再安装 django
还可以在原来这台机器上再安装一个版本的 django(这个方法不可行)
再重新编译安装一个 python 解释器 (特别麻烦, 很费时间)
原来的 python3 解释器, 以它为本体, 创建多个分身
第一个分身
django2.2.0
?
第二个分身
django3.0
?
第三个分身
django1.0
?
第四个分身
flask
?
第五个分身
tornado
在使用 Python 开发的过程中, 工程一多, 难免会碰到不同的工程依赖不同版本的库的问题; 亦或者是在开发过程中不想让物理环境里充斥各种各样的库, 引发未来的依赖灾难. 此时, 我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁. 这里就要隆重介绍 virtualenv, 一个可以帮助我们管理不同 Python 环境的绝好工具. virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境.
2.2 安装虚拟环境
2.2.1 下载安装虚拟环境模块
pip3 install -i https://pypi.douban.com/simple virtualenv
2.2.2 创建二个虚拟环境
- virtualenv --no-site-packages --python=python3 qishi6
- virtualenv --no-site-packages --python=python3 qishi7
- ?
- --no-site-packages # 表示安装一个干净 纯洁的虚拟环境
- --python=python3 # 表示指定 python 解释器本体
2.2.3 激活虚拟环境
相对路径
- cd /root/zouyongling/bin
- source activate
绝对路径:
source /root/zouyongling/bin/activate
2.2.4 查看虚拟环境与 python 本体的区别, 确认是否在虚拟环境内
pip3 list
- # 检测是否在虚拟环境内
- echo $PATH
- ?
- /opt/virtual_env/qiangge/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
现在的环境变量第一位是虚拟环境下面的 python3 解释器, 跟 python 本体的解释器不一样
- which python3
- /opt/virtual_env/xiangge/bin/python3
退出虚拟环境
deactivate
2.2.5 分别在两个虚拟环境下面创建两个 django 项目 qishi3_1 和 qishi3_2
在 1.1.16 这个版本的 django 下, 用 8000 端口来跑
在 2.1.7 这个版本的 django 下, 用 9000 端口来跑
1 分别进入两个虚拟环境, 分别创建 django 项目, 但是都在 / opt/qishi3dj 目录下
进入 xiangge 虚拟环境下
- source /opt/virtual_env/xiangge/bin/activate
- cd /opt/qishidj
- django-admin startproject qishi_1
再进入 bangzhang 虚拟环境下
- source /opt/virtual_env/bangzheng/bin/activate
- cd /opt/qishidj
- django-admin startproject qishi_2
2 分别将两个 django 跑起来
遇到的两个问题解决方法:
1 报错:/root/zouyongling/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py 62 行
解决方法:
注释掉此文件的第 63,64 行即可
- def check_sqlite_version():
- pass
- #if Database.sqlite_version_info <(3, 8, 3):
- # raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s)." % Database.sqlite_version)
2 报错 admin 关键的一个错
解决方法:
注释掉 urls.py 下面的一个 admin 的路由即可
2.2.6 练习实验:
安装虚拟环境 virtualenv 工具
分别创建两个虚拟环境, 自定义命名, 放在 / opt/qishi8_venv 目录下
分别进入两个虚拟环境, 分别创建两个不同版本的 django(django==3.0 和 django==2.2)
分别将两个虚拟环境跑起来, django3.0 用 8000 端口, django2.2 用 9000 端口
2.2.7 virtualenv 的缺点
virtualenv 这个工具太麻烦了
1 命令太长, 不容易记住
2 管理虚拟环境特别麻烦, 容易弄错目录, 容易找不到虚拟环境, 最终导致得重装系统或者重装虚拟环境
3. 确保开发环境的一致性
解决方案:
1. 通过命令保证环境的一致性, 导出当前 python 环境的包
- pip3 freeze> requirements.txt
- ?
这将会创建一个 requirements.txt 文件, 其中包含了当前环境中所有包及 各自的版本的简单列表.
可以使用 "pip list" 在不产生 requirements 文件的情况下, 查看已安装包的列表.
?
2. 上传至服务器后, 在服务器下创建 virtualenv, 在 venv 中导入项目所需的模块依赖
pip3 install -r requirements.txt
4. virtualenvwrapper 安装
4.1 安装 virtualenvwrapper
注意: 一定要安装在 python 解释器本体下!!!
注意: 一定要安装在 python 解释器本体下!!!
注意: 一定要安装在 python 解释器本体下!!!
pip3 install virtualenvwrapper -i https://pypi.douban.com/simple
4.2 设置 Linux 的用户配置文件配置 virtualenvwrapper
- VIM ~/.bashrc
- WORKON_HOME=~/Envs # 设置 virtualenv 的统一管理目录, 以后自动下载的虚拟环境, 全部都放在这
- VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 添加 virtualenvwrapper 的参数, 生成干净隔绝的环境
- VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3 # 指定 python 解释器的本体 (注意此路径随不同的 Linux 环境改变而改变)
- source /opt/python36/bin/virtualenvwrapper.sh # 执行 virtualenvwrapper 安装脚本
注意: 后面的注释你得知道, 但是不能放到配置文件里面去, 不然会报错!!!
注意: 后面的注释你得知道, 但是不能放到配置文件里面去, 不然会报错!!!
注意: 后面的注释你得知道, 但是不能放到配置文件里面去, 不然会报错!!!
真实实验环境配置文件如下:
- WORKON_HOME=~/Envs
- VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
- source /opt/python36/bin/virtualenvwrapper.sh
4.3 重新加载~/.bashrc 文件
source ~/.bashrc
4.4 登出用户, 重新再登录
4.5 创建一个虚拟环境
- mkvirtualenv yongling
- mkvirtualenv yatai
- mkvirtualenv shaodong
4.6 激活虚拟环境
- workon yongling
- workon yatai
- workon shaodong
4.7 删除虚拟环境
- rmvirtualenv yongling
- rmvirtualenv yatai
- rmvirtualenv shaodong
4.8 安装黑客屏保软件
参照博客:
https://www.lxh1.com/2019/12/06/linux_appendix/Linux下cmatrix的安装和使用(黑客屏保)/
5. CentOS7 下安装 MariaDB
公司的免费技术栈:
CentOS + python3 + django + vue + MySQL + Redis + celery + docker + Git + nginx
收费的技术栈
oracle 甲骨文 + SVN + RedHat + apache + MySQL + django
5.1 一条命令安装 Mariadb
首先在 / etc/yum.repos.d 下创建一个 MariaDB.repo 文件
VIM /etc/yum.repos.d/MariaDB.repo
添加以下配置
- [mariadb]
- name=MariaDB
- baseurl=http://yum.mariadb.org/10.1/centos7-amd64
- gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
- gpgcheck=1
- ?
使用一条命令下载安装 Mariadb
yum install MariaDB-server MariaDB-client -y
以上是安装官方版本的方法, 如果下载比较慢的话, 可以使用下面的另一种方法, 从国内阿里云源下载
- # 由于官方的下载网速太慢, 我们教学就使用阿里云低版本的 mariadb 数据库
- # 然后一条命令安装 Mariadb
- yum install mariadb-server mariadb -y
5.2 安装好了之后, 使用 systemctl 进行 mariadb 服务管理
- systemctl start mariadb #启动 MariaDB
- systemctl stop mariadb #停止 MariaDB
- systemctl restart mariadb #重启 MariaDB
- systemctl enable mariadb #设置开机启动
5.3 初始化 mariadb
mysql_secure_installation
5.4 优先解决中文无法正常显示的问题
1 停掉 mariadb 服务
systemctl stop mariadb
2 修改配置文件 VIM /etc/my.cnf
- [mysqld]
- character-set-server=utf8
- collation-server=utf8_general_ci
- log-error=/var/log/mysqld.log
- [client]
- default-character-set=utf8
- [MySQL]
- default-character-set=utf8
5.5 进入 MySQL, 熟悉一下 MySQL 相关操作:
1 创建一个数据库 oldboy
create database oldboy
2 进入数据库 oldboy
use oldboy
3 创建一个表 student
create table student(id int(11),name varchar(20));
4 进入表 student
use student
5 插入一条数据
insert into student(id, name) values(1, "三包春药");
6 查看这条数据, 发现中文无法正常显示
5.6 查看数据库默认编码:
MySQL -u root -p 进入数据库
输入命令 \ s 查看默认编码
- MariaDB [(none)]> \s
- --------------
- MySQL Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (i686) using readline 5.1
- ?
- Connection id: 3
- Current database:
- Current user: [email protected]
- SSL: Not in use
- Current pager: stdout
- Using outfile: ''
- Using delimiter: ;
- Server: MariaDB
- Server version: 5.5.60-MariaDB MariaDB Server
- Protocol version: 10
- Connection: Localhost via UNIX socket
- Server characterset: utf8
- Db characterset: utf8
- Client characterset: utf8
- Conn. characterset: utf8
- UNIX socket: /var/lib/MySQL/MySQL.sock
- Uptime: 4 min 56 sec
- ?
- Threads: 1 Questions: 26 Slow queries: 0 Opens: 3 Flush tables: 2 Open tables: 28 Queries per second avg: 0.087
- --------------
- ?
查看某一个数据库 oldboy 的编码
show create database oldboy
查看某一个表 student 的编码
- show create table student
- 6. Redis
6.1 Redis 简介
Redis 的优点:
属于内存型的数据库, 存储速度非常快
Redis 的缺点:
断电数据会丢失
Redis 服务挂掉之后数据也会丢失
6.2 Redis 的安装
6.2.1 下载 Redis 源码包
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
6.2.2 解压缩
tar -zxvf Redis-5.0.2.tar.gz
6.2.3 切换 Redis 源码目录
cd Redis-4.0.10
6.2.4 编译源文件
make
6.2.5 编译好后, src / 目录下有编译好的 Redis 指令
6.2.6 make install 安装到指定目录, 默认在 / usr/local/bin
make install
6.2.7 创建 Redis 配置文件
- 1,mkdir -p /opt/redis_conf
- cd /opt/redis_conf
- VIM Redis-6379.conf # 创建多个 Redis 服务时, 就需要创建多个文件
- # VIM Redis-6380.conf
- # VIM Redis-6381.conf
- ?
- 2,mkdir -p /data/6379 # 创建 Redis 数据文件夹的目录
- mkdir -p /data/6380 # 创建 Redis 数据文件夹的目录
- mkdir -p /data/6381 # 创建 Redis 数据文件夹的目录
6.2.8 添加以下配置 注意: 配置文件中的端口需要更改
- port 6379 # 运行在 6379 的 Redis 数据库实例
- daemonize yes # 后台运行 Redis
- pidfile /data/6379/Redis.pid # 存放 Redis pid 的文件
- loglevel notice # 日志等级
- logfile "/data/6379/redis.log" # 指定 Redis 日志文件的生成目录
- dir /data/6379 # 指定 Redis 数据文件夹的目录
- protected-mode yes # 安全模式
- requirepass haohaio # 设置 Redis 的密码
注意: 创建一个 Redis 日志文件的生成目录
mkdir -p /data/6379/
6.2.9 启动 Redis
Redis-server /opt/redis_conf/Redis-6379.conf # 先启动, 在连接
6.2.10 连接 Redis
使用命令 Redis-cli 进行连接
- Redis-cli -p 6379 -a haohaio
- ?
参数详解:
Redis-cli -p 6380 -a haohaio
-p 设置 Redis 链接的端口
-a 显示的填写密码
--raw 使用原始格式
来源: http://www.bubuko.com/infodetail-3361311.html