2. pyhton虚拟环境virtualenv
2.1 虚拟环境介绍
问题: 我要想在一台机器上面安装两个版本的django,该怎么做?
解决方案:
1 再买一台机器,在这台机器上安装python3解释器,再安装django
2 还可以在原来这台机器上再安装一个版本的django(这个方法不可行)
3 再重新编译安装一个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%E4%B8%8Bcmatrix%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8(%E9%BB%91%E5%AE%A2%E5%B1%8F%E4%BF%9D)/
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: root@localhost
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 使用原始格式