aliuge 2020-01-01
问题: 我要想在一台机器上面安装两个版本的django,该怎么做?
解决方案:
1 再买一台机器,在这台机器上安装python3解释器,再安装django2 还可以在原来这台机器上再安装一个版本的django(这个方法不可行)3 再重新编译安装一个python解释器(特别麻烦,很费时间)
原来的python3解释器, 以它为本体, 创建多个分身
第一个分身django2.2.0?第二个分身django3.0?第三个分身django1.0?第四个分身flask?第五个分身tornado
在使用Python开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。这里就要隆重介绍virtualenv,一个可以帮助我们管理不同Python环境的绝好工具。virtualenv可以在系统中建立多个不同并且相互不干扰的虚拟环境。
pip3 install -i https://pypi.douban.com/simple virtualenv
virtualenv --no-site-packages --python=python3 qishi6virtualenv --no-site-packages --python=python3 qishi7?--no-site-packages # 表示安装一个干净 纯洁的虚拟环境--python=python3 # 表示指定python解释器本体
相对路径
cd /root/zouyongling/binsource activate
绝对路径:
source /root/zouyongling/bin/activate
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
在1.1.16这个版本的django下,用8000端口来跑
在2.1.7这个版本的django下,用9000端口来跑
1 分别进入两个虚拟环境,分别创建django项目,但是都在/opt/qishi3dj目录下
进入xiangge虚拟环境下
source /opt/virtual_env/xiangge/bin/activatecd /opt/qishidjdjango-admin startproject qishi_1
再进入bangzhang虚拟环境下
source /opt/virtual_env/bangzheng/bin/activatecd /opt/qishidjdjango-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的路由即可
安装虚拟环境virtualenv工具
分别创建两个虚拟环境,自定义命名, 放在/opt/qishi8_venv目录下
分别进入两个虚拟环境,分别创建两个不同版本的django(django==3.0和django==2.2)
分别将两个虚拟环境跑起来, django3.0用8000端口,django2.2用9000端口
virtualenv这个工具太麻烦了
1 命令太长, 不容易记住
2 管理虚拟环境特别麻烦, 容易弄错目录,容易找不到虚拟环境,最终导致得重装系统或者重装虚拟环境
解决方案:1.通过命令保证环境的一致性,导出当前python环境的包pip3 freeze > requirements.txt ?这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。?2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖pip3 install -r requirements.txt
注意: 一定要安装在python解释器本体下!!!
注意: 一定要安装在python解释器本体下!!!
注意: 一定要安装在python解释器本体下!!!
pip3 install virtualenvwrapper -i https://pypi.douban.com/simple
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=~/EnvsVIRTUALENVWRAPPER_VIRTUALENV_ARGS=‘--no-site-packages‘ VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3source /opt/python36/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv yonglingmkvirtualenv yataimkvirtualenv shaodong
workon yonglingworkon yataiworkon shaodong
rmvirtualenv yonglingrmvirtualenv yatairmvirtualenv shaodong
参照博客: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)/
公司的免费技术栈:
centos + python3 + django + vue + mysql + redis + celery + docker + git + nginx
收费的技术栈
oracle甲骨文 + SVN + redhat + apache + mysql + django
首先在/etc/yum.repos.d下创建一个MariaDB.repo文件
vim /etc/yum.repos.d/MariaDB.repo
添加以下配置
[mariadb]name=MariaDBbaseurl=http://yum.mariadb.org/10.1/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1?使用一条命令下载安装Mariadbyum install MariaDB-server MariaDB-client -y
以上是安装官方版本的方法,如果下载比较慢的话,可以使用下面的另一种方法,从国内阿里云源下载
# 由于官方的下载网速太慢,我们教学就使用阿里云低版本的mariadb数据库# 然后一条命令安装Mariadbyum install mariadb-server mariadb -y
systemctl start mariadb #启动MariaDBsystemctl stop mariadb #停止MariaDBsystemctl restart mariadb #重启MariaDBsystemctl enable mariadb #设置开机启动
mysql_secure_installation
1 停掉mariadb服务 systemctl stop mariadb2 修改配置文件vim /etc/my.cnf
[mysqld]character-set-server=utf8collation-server=utf8_general_cilog-error=/var/log/mysqld.log[client]default-character-set=utf8[mysql]default-character-set=utf8
1 创建一个数据库oldboy create database oldboy2 进入数据库oldboy use oldboy3 创建一个表student create table student(id int(11),name varchar(20));4 进入表student use student5 插入一条数据 insert into student(id, name) values(1, "三包春药");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: 3Current database: Current user: SSL: Not in useCurrent pager: stdoutUsing outfile: ‘‘Using delimiter: ;Server: MariaDBServer version: 5.5.60-MariaDB MariaDB ServerProtocol version: 10Connection: Localhost via UNIX socketServer characterset: utf8Db characterset: utf8Client characterset: utf8Conn. characterset: utf8UNIX socket: /var/lib/mysql/mysql.sockUptime: 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
redis的优点:
属于内存型的数据库,存储速度非常快
redis的缺点:
断电数据会丢失
redis服务挂掉之后数据也会丢失
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
tar -zxvf redis-5.0.2.tar.gz
cd redis-4.0.10
make
make install
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数据文件夹的目录
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/
redis-server /opt/redis_conf/redis-6379.conf # 先启动,在连接
使用命令redis-cli进行连接redis-cli -p 6379 -a haohaio?参数详解:redis-cli -p 6380 -a haohaio -p 设置redis链接的端口 -a 显示的填写密码 --raw 使用原始格式