數據庫基礎整理

MySQL

  • 登錄:mysql -uroot -p
  • 退出:exit;
  • 啓動:/etc/inint.d/mysqld start
  • 停止:/etc/inint.d/mysqld stop
  • 重啓:/etc/inint.d/mysqld restart

用戶增刪查、授權

# 修改當前登錄用戶密碼
set password = password('新密碼');

# 查看用戶
select user,host from mysql.user;

# 創建用戶
create user '用戶名'@'loaclhost' identified by '密碼';
# 授權
grant all on 數據庫名.* to '用戶名'@'loaclhost';
# 授權root權限[ with grant option ] 代表此用戶可以給其他用戶授權
grant all on *.* to '用戶名'@'localhost' with grant option;

# 修改用戶密碼
set password for 用戶名@localhost = password('新密碼')

# 刪除用戶
drop user 用戶名@'%';

# 刷新
flush privileges;

數據定義語言(DDL)

  • 查看庫:show databases;,會顯示當前服務器上所有的數據庫
  • 創建庫:create database test charset=utf8;,創建數據庫test,指定字符集
  • 刪除庫:drop database test;,刪除數據庫test
  • 選擇庫:use test;,選擇數據庫test
    • 查看當前使用的數據庫
      • show tables;
      • select database();
  • 查看所有表:show tables;,查看當前數據庫下的所有數據表
  • 創建表:create table user(username varchar(20), password char(32));
  • 查看錶結構:desc user;
  • 查看創建方式:
    • 查看庫:show create database test;
    • 查看錶:show create table user;
  • 刪除表:drop table user;
  • 指定字符集:
    • 創建時指定:create table xxx() charset=utf8;
  • 修改字段:
    • alter table user modify username varchar(30);,不能修改字段名
    • alter table user change email em varchar(32);,可以修改字段名
  • 添加字段:
    • 默認在最後添加:alter table user add age int(3);
    • 在指定字段後添加:alter table user add email varchar(60) after password;
    • 在開頭添加字段:alter table user add id int(11) first;
  • 刪除字段:alter table user drop age;
  • 修改字段位置及名稱:add/modify/change
    • alter tablr user modify em varchar(32) first;
  • 修改表名:alter table user rename new_user;

數據操作語言(DML)

  • 說明:在大多數的操作中,使用的都是增刪改查操作(CURD)。

  • 準備:一張用於測試的表

    mysql> create table tb_name(
        -> id int auto_increment,
        -> name varchar(20) not null,
        -> money float not null,
        -> province varchar(20) default null,
        -> age tinyint unsigned not null,
        -> sex tinyint not null,
        -> primary key(id)
        -> )engine=innodb default charset=utf8;
    
  • 插入數據:

    • 方式1:不指定字段,添加數據時需要寫完整所有的字段
    insert into tb_name values(1, '劉亦菲', 20000000, '武漢', 28, 1);
    

    可以一次性插入多條數據,一條數據需要使用一個()包括起來。

    • 方式2:指定字段,只需要傳遞指定字段的值
    insert into tb_name(name, money, age, sex, province) values('趙麗穎', 8000000, 31, 1, '河北');
    

    插入數據的順序與前面指定的字段名要一致。

    • 注意:插入數據時可以不傳值的字段
      • 自增的字段
      • 有默認值的
      • 可以爲空的
    • 說明:插入數據時,第二種方式使用的比較多。
  • 查詢數據:select * from tb_name;

  • 查詢指定數據:select * from tb_namewhere id=1;

  • 修改數據:update tb_nameset age=31, money=10000000 where id=1;

    • 警告:修改操作一定不要忘了指定條件,否則後果自負。
  • 刪除數據:delete from tb_namewhere id=2;

    • 警告:刪除操作一定不要忘了指定條件,否則後果自負。

查詢數據語言(DQL)

  • 基礎查詢:select * from tb_name;

  • 指定字段查詢:select name, money, province from tb_name;

  • 刪除重複記錄:select distinct province, sex from tb_name;

    • 使用distinct指定的字段不能重複,指定多個字段時,字段組合不能重複
  • 指定條件查詢:

    • 示例:
    select * from tb_name where age > 30;
    select * from tb_name where age > 30 and sex=1;
    select * from tb_name where age > 30 or province='河南';
    select * from tb_name where age [not] between 30 and 40;
    select * from tb_name where id [not] in(1,3,5);
    select * from tb_name where province like '%北%';  # 包含北 的地區
    select * from tb_name where province like '北_';  # 北x 的地區
    select * from tb_name where province like '*北';  # 以北 開頭的地區
    select * from tb_name where length(name)<6;
    
  • 通配符:like模糊查詢使用

    • %:表示任意個字符,可匹配任意類型和長度的字符
    • _:表示單個任意字符,常用來限制表達式的字符長度語句(可以代表一箇中文字符)
    • *:以某個字符開頭或結尾
  • 結果集排序:

    • 示例:
     select * from tb_name order by age asc;	
    select * from tb_name order by money desc;
    
      • 多字段排序:當前面字段值一樣時,按照後面指定的字段進行排序
      select * from tb_name order by sex asc, age desc;
      
    • 限制結果集:

      • limit:用於限制結果集的數量
    • 示例:

    select * from tb_name limit 5;						# 取前5條數據
    select * from tb_name limit 5 offset 2;			# 偏移2條,取5條數據
    select * from tb_name limit 2, 5; 					# 功能同上
    省略offset的寫法  就是將偏移量放到前面  將限制每頁條數的放在後面
    
    • 分頁查詢:
    每頁10條數據,用pageSize,page是當前頁面,請寫出對於頁碼的查詢條件
    第一頁:limit 10
    第二頁:limit 10, 10
    第三頁:limit 20, 10
    page頁:limit (page-1) * pageSize, pageSize
    
    
  • 常用聚合函數:

    函數 說明
    count 統計個數
    sum 求和
    avg 平均值
    max 最大值
    min 最小值
  • 示例:

  select count(*) as c from tb_name;
  select max(money) as max_money from tb_name;

as可以給查詢結構字段起別名

  • 分組及過濾:

    • 示例:
    select * from tb_name group by sex;		# 只分組,結果集中每個組中只有一條數據
    select count(*) as c, sex from tb_name group by sex;	# 分組並統計信息
    select count(*) as c, province from tb_name group by province having c>1; 
    having後面做的是分組後的顯示過濾
    # 分組後條件不能使用where,只能使用having
    
    

創建多表關係:

foreign key(o_buyer_id)references s_user(u_id),

foreign key(o_seller_id)references s_user(u_id)

alter table emp add constraint foreign key emp(deptno) refetences dept(deptno);

FOREIGN KEY(o_buyer_id) REFERENCES s_user(u_id),

FOREIGN KEY(o_seller_id) REFERENCES s_user(u_id)

ALTER TABLE EMP ADD CONSTRAINT FOREIGN KEY EMP(DEPTNO) REFERENCES DEPT 	(DEPTNO);


多表聯合查詢

select distinct:清楚查詢

  • 隱式內連接:沒有出現join關鍵字

    • 示例:select username, name from user, goods where user.gid=goods.gid;
    • 說明:查看哪個用戶購買了哪個商品
  • 顯式內連接:SQL語句中出現了join關鍵字

    • 示例:select username,name from user join goods on user.gid=goods.gid;
    • 說明:功能同上
    • join前可以添加innercross關鍵字,可以省略
  • 左外連接:以左表爲主,left outer

    • 示例:select username, name from user left outer join goods on user.gid=goods.gid;
    • 說明:顯示左表所有數據,右表有對應就顯示數據,沒有對應顯示NULL
  • 右外連接:以右表位住,right outer

    • 示例:select username, name from user right outer join goods on user.gid=goods.gid;
    • 說明:顯示有表所有數據,左表有對應就顯示數據,沒有對應顯示NULL
  • 子(嵌套)查詢

    select * from user where gid in (1,3,5);
    select * from user where gid in (select gid from goods);
    
    
  • 記錄聯合

    • 語法:select 語句1 union select 語句2
    • 說明:
      • union all:將兩邊查詢結果直接拼在一起
      • union:是union all的去重結果
  • 聯合更新數據

    • 示例:update user u, goods g set u.gid=0, g.price=g.price-200 where u.gid=g.gid and u.id=7;
    • 說明:可以給操作的表起別名,還可以對字段的原有隻進行運算

事務處理語言(DTL)

  • 說明:測試的表的存儲引擎要支持事務(InnoDB)

  • 開啓事務:禁止自動提交

    • set autocommit=0;
  • 操作回滾:通常在出現操作異常時使用

    • rollback;
  • 提交操作:整個事務過程中沒有問題

    • commit;

開啓事務:
start transaction

提交事務:
commit

回滾操作:
rollback

數據控制語言(DCL)

  • 查看授權:

    • 格式:show grants [for 'user'@'host'];
    • 示例:show grants for 'root'@'localhost';
    • 說明:查看當前登錄用戶授權時可以不指定用戶及主機
  • 創建用戶:

    • 格式:create user 'user'@'host' identified by 'password';
    • 示例:create user 'test'@'10.8.156.%' identified by '123456';
    • 說明:%表示通配符,任意的
  • 用戶授權:

    • 格式:grant 權限 privileges on 庫名.表名 to 'user'@'host' identified by 'password';
    • 示例:grant all privileges on *.* to 'test'@'10.8.156.%' identified by '123456';
    • 說明:權限可以是select、delete、insert、update等,all表示所有權限;*表示所有
  • 刷新權限:flush privileges;

  • 取消授權:

    • 格式:revoke 權限 privileges on 庫名.表名 from 'user'@'host';
    • 示例:revoke delete privileges on test.* from 'test'@'10.8.156.%';
    • 說明:收回當前局域網內的test用戶在test庫下所有的表的刪除權限
  • 刪除用戶:

    • 格式:drop user 'user'@'host';
    • 示例:drop user 'test'@'10.8.156.%';
  • linux下遠程登錄:

    • 修改 /etc/mysql/mysql.conf.d/mysqld.cnf文件,

    將bind-address=127.0.0.1改爲:bind-address=0.0.0.0

    • 添加指定用戶在指定主機的操作權限:
    grant all privileges on *.* to 'root'@'%' identified by '123456';
    
    

備份與恢復

  • 備份:
    • 說明:就是將數據庫中的數據(SQL語句)保存到一個文件中
    • 示例:mysqldump -uroot -p test > test.sql
  • 恢復:
    • 說明:將保存SQL語句的文件解析,挨個執行其中的SQL語句
    • 示例:mysql -uroot -p test < test.sql

python操作MySQL

  • 安裝擴展:pip install pymysql
  • 查看安裝包:pip list
import MySQLdb  # sqlite3

# 打開數據庫連接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='utf8' )

# 使用cursor()方法獲取操作遊標 
cursor = db.cursor()

# 使用execute方法執行SQL語句
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法獲取一條數據;fetchall()獲取全部;fetchmany()獲取一條,返回列表
data = cursor.fetchone()

print("Database version : %s " % data)

# 關閉數據庫連接
db.close()

Redis

Redis簡介

  • Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。
  • 非關係型數據庫的一種,經常用作緩存數據庫服務器。
  • 官網:http://www.redis.io/ 中文網:http://www.redis.cn/
  • 具有豐富的數據類型:字符串、哈希、列表、集合、有序集合
  • 端口:6379

redis的特點:

Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載進行使用。
Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
Redis支持數據的備份,即master-slave模式的數據備份
性能極高  支持每秒讀的次數爲110000次/s,寫的速度是81000次/s

redis常用命令

  • 常用管理命令:

    sudo service mongod start:重啓服務
    mongo:連接redis
    ping:測試連接情況,默認恢復'PONG'
    quit/exit:退出客戶端
    auth:密碼認證
    config:配置命令,可以查看和設置配置信息,參考密碼查看與設置
    info:查看服務器信息,可以指定具體模塊查看
    command:查看支持的命令
    
    select:選擇庫,總共16個,默認爲0數據庫;提示符後會有庫號的提示,沒有就是默認的庫(0)
    dbsize:查看當前庫key的數量
    flushdb:清空當前庫
    flushall:清空所有庫
    save:前臺執行持久化存儲
    bgsave:後臺執行持久化存儲
    
    
  • 鍵(keys):

    exists:判斷指定的鍵是否存在
    del:刪除指定的鍵值對
    keys *:查看指定樣式的鍵,keys *表示查看所有
    ttl:查看指定鍵的剩餘有效時間,單位爲秒,不存在鍵返回-2,永久返回-1
    expire:設置指定鍵的生存時間
    persist:移除指定鍵的生存時間,之後該鍵永久有效
    move:移動指定的鍵到指定的庫
    rename:修改指定鍵的名字
    
    
  • 字符串(string)

    set:設置,存在就修改,不存在就添加
    get:獲取,獲取指定鍵的值
    mset:同時設置多個鍵值對
    mget:同時獲取多個鍵對應的值
    getset:設置新值,同時返回舊值
    setex:設置值及過期時間,單位爲秒
    incr:數字值加1
    decr:數字值減1
    incrby:數字值加上指定值
    decrby:數字值減去指定值
    incrbyfloat:數字值加上一個浮點數
    append:鍵存在,值爲字符串,追加指定的內容到原值的末尾
    strlen:返回鍵對應值的字符長度
    
    
  • 哈希(hash)

    hset:設置單個屬性
    hget:獲取單個屬性
    hmset:設置多個屬性
    hmget:獲取多個屬性
    hgetall:獲取所有屬性
    hexists:判斷指定鍵是否有指定的字段
    hdel:刪除指定鍵的指定字段
    hkeys:獲取指定鍵的所有字段
    hvals:獲取指定鍵的所有字段值
    hlen:獲取指定鍵的字段個數
    hincrby:在指定鍵的指定字段上增加一個整數
    hincrbyfloat:在指定鍵的指定字段上增加一個浮點數
    
    
  • 列表(list)

    lpush:從左邊(頭部)插入數據
    lpop:從左邊(頭部)刪除並返回數據
    lrange:獲取區間內的數據,0 -1通常可以表示所有範圍
    lindex:根據索引獲取元素
    llen:統計列表中元素個數
    lset:設置指定索引的元素值
    lrem:刪除指定數量的元素
    linsert:在指定元素的前/後插入元素(before)
    ltrim:修剪列表元素(保留指定範圍內地,刪除其他)
    rpop:從右邊(尾部)刪除並返回數據
    rpush:從右邊(尾部)插入數據
    
    
  • 集合

    sadd: 向集合中添加一個元素
    scard: 獲取集合中的成員數
    smembers:返回集合中的所有成員
    spop:移除並返回集合中的一個隨機元素
    
    

redis的發佈訂閱:

Redis 發佈訂閱(pub/sub)是一種消息通信模式:發送者(pub)發送消息,訂閱者(sub)接收消息。
Redis 客戶端可以訂閱任意數量的頻道。

當有新消息通過 PUBLISH 命令發送給頻道 channel1 時, 這個消息就會被髮送給訂閱它的三個客戶端:
創建訂閱頻道名
subscribe name
通過publish name去往頻道名字裏面推送信息
然後客戶端就能收到此訂閱信息

數據類型

  • 字符串、哈希、列表

  • 集合(set)

    sadd:向集合中添加元素(集合不存在會自動創建)
    scard:統計集合中元素的個數
    smembers:返回所有元素
    sismember:判斷某個元素是否是集合的成員
    spop:隨機刪除並返回指定個數的元素,不指定個數默認一個元素
    srandmember:隨機獲取指定個數的元素
    srem:移除指定元素
    smove:將指定的元素從一個集合移動到另一個集合中
    sinter:求交集
    sinterstore:求交集並保存到一個集合中
    sdiff:求差集
    sdiffstore:求差集並保存到一個集合中
    sunion:求並集
    sunionstore:求並集並保存到一個集合中
    
    
  • 有序集合(sorted set)

    zadd:添加元素
    zcard:統計元素個數
    zcount:指定分數區間統計
    zrange:返回指定索引範圍內的元素(升序),zrevrange:降序
    zrangebyscore:返回指定分數區間的元素(升序),zrevrangebyscore:降序
    zrank:返回指定元素的索引(升序),zrevrank:降序
    zrem:移除元素
    zscore:返回元素的分數
    zincrby:將元素的分數增加一個值
    zinterstore:求交集並保存
    zunionstore:求並集並保存
    
    

Python操作Redis

  • 安裝擴展:pip install redis

  • 簡介:

    redis擴展庫中有兩個類,Redis和StrictRedis;StrictRedis實現了官方的命令,Redis是它的子類,兼容老版本。擴展中沒有提供select方法,可以在連接時通過參數指定庫。
    
    
  • 操作:

    • 簡單連接:導入類庫,創建Redis對象,然後所有的命名都是Redis對象的方法
    • 連接池:多個Redis使用同一個連接池連接,減少了頻繁的連接、斷開數據庫的開銷
    • 使用管道:可以先記錄多條命令,然後一次性發送到服務器,避免了多次操作服務器的開銷

redis的安裝:

第一種方法:
	1.首先在官網上下載redis最新的版本,命令如下:

	wget http://download.redis.io/releases/redis-4.0.8.tar.gz

	2.解壓下載的redis壓縮包
	tar -vxzf redis-4.0.8.tar.gz
	
	3.進入src目錄並make
	make
	4.編譯完成後可以使用如下命令進行測試
	make test
	注:如果make過程中出現瞭如下錯誤:
	error: jemalloc/jemalloc.h: No such file or directory 
	就執行make MALLOC=libc 就OK了,不過在執行這一句之前最好先執行 
	make clean清理一下。

	啓動方法  在src目錄下   ./redis-server

第二種方法:
	sudo apt-get update
	sudo apt-get install redis-server
	啓動 Redis
	 redis-server
	查看 redis 是否啓動?
	 redis-cli
	以上命令將打開以下終端:
	redis 127.0.0.1:6379>
	127.0.0.1 是本機 IP ,6379 是 redis 服務端口。現在我們輸入 PING 命令。
	redis 127.0.0.1:6379> ping
	PONG

	有時候會有中文亂碼  連接的時候需要  redis-cli --raw

MongoDB

MongoDB簡介

  • MongoDB是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。

  • 是一個介於關係型數據庫和非關係型數據庫之間的產品,是非關係型數據庫中最像關係型數據庫的一種,是功能最豐富的非關係型數據庫。

  • 安裝和卸載:
    1.導入軟件源的公鑰

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
    
    
    2.爲mongodb創建軟件源list文件 
    ubuntu12.04:
    echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
    
    ubuntu14.04:
    echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
    
    ubuntu16.04:
    echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
    
    3.更新軟件源並安裝mongodb
    sudo apt-get update
    sudo apt-get install -y mongodb-org
    
    	  如果想要安裝特定的版本,使用下面命令:
    	  sudo apt-get install -y mongodb-org=3.2.9 mongodb-org-server=3.2.9 mongodb-org-shell=3.2.9 mongodb-org-mongos=3.2.9 mongodb-org-tools=3.2.9
    4.配置啓動文件 
    如果是ubuntu16.04的版本,需要手動新建/lib/systemd/system/mongod.service文件,並寫入下面內容:
    [Unit]
    Description=High-performance, schema-free document-oriented database
    After=network.target
    Documentation=https://docs.mongodb.org/manual
    
    [Service]
    User=mongodb
    Group=mongodb
    ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
    
    [Install]
    WantedBy=multi-user.target
    
    
	5.啓動、重啓和關閉命令
	sudo service mongod start
	sudo service mongod restart
	sudo service mongod stop

	6.mongodb的完全卸載 

	先停止運行mongodb
	sudo service mongod stop

	再卸載軟件
	sudo apt-get purge mongodb-org*

	刪除數據庫和日誌文件
	sudo rm -r /var/log/mongodb
	sudo rm -r /var/lib/mongodb

	如果想要使用遠程連接mongo  那麼需要
	sudo vim /etc/mongo.conf
	找到net   將 127.0.0.1  改爲0.0.0.0即可

	連接到mongodb
	直接在終端輸入 mongo

MySQL與MongoDB對比

  • 相關概念

    MySQL MongoDB
    database(數據庫) db(數據庫)
    table(數據表) collection(集合)
    row(行) document(文檔)
    column(列) field(域/字段)

db操作

  • 查看所有數據庫:show dbs,若數據庫中沒有數據,則不會顯示出來
  • 查看當前數據庫:dbdb.getName()
  • 創建並切換數據庫:use python1806
    • 數據庫存在直接切換,不存在創建後再切換
    • 當數據庫中沒有數據時,show dbs不會顯示
  • 刪除當前數據庫:db.dropDatabase()
  • 查看幫助:help
  • 退出:exitquit()

collection操作

  • 查看當前數據庫下的所有集合:show collections
  • 創建集合:
    • 單純創建:db.createCollection('user'),會創建一個空集合
    • 按需創建:db.stu.insert({name:'shuorui', age:30}),直接操作不存在的集合,系統會自動創建
  • 刪除集合:db.stu.drop()

document操作

  • 增加文檔:

    • insert
    # 插入一條數據
    db.user.insert({name:'jiwei', age:29, height:175, isDelete:0})
    # 插入多條數據
    db.user.insert([{name:'zhihui',age:18, height:168, isDelete:0},{name:'minghui', age:28, height: 173, isDelete:0}])
    
    
    • save
    # 保存的數據沒有_id字段,會插入一個新的文檔
    db.user.save({name:'wenke', age:40, height:178, isDelete:0})
    # 保存的數據有_id字段,會修改對應的數據
    db.user.save({_id:ObjectId("5be3ecf105c088a265a0b578"), name:'wenke',age:30, height: 178, isDelete:0})
    
    
  • 更新文檔

    • save
    # 保存的數據有_id字段,會修改對應的數據,就相當於更新操作
    db.user.save({_id:ObjectId("5be3ecf105c088a265a0b578"), name:'wenke',age:25, height: 178, isDelete:0})
    
    
    • update:db.集合.update(query, update, {upsert:<boolean>, multi:<boolean>})
      • query:表示查詢條件
      • update:表示更新設置的內容
        • $set:表示設置
        • $inc:表示增加
      • upsert:更新的查詢結果不存在,是否作爲新數據插入,默認爲false
      • multi:符合條件的數據是否全部更新;true表示全部更新,false表示更新一條,默認爲false
    db.user.update({age: 25}, {$set:{age:26}})			# 只會更新一條
    
    db.user.update({height:175}, {$inc:{height: 1}}, {multi: true})		# 會更新全部
    db.user.updateMany({isDelete: 1}, {$set:{isDelete: 0}})		# 更新全部
    
    
  • 刪除文檔

    • remove:db.集合.remove(query,{justOne:<boolean>})
    db.user.remove({height: 176})		# 默認刪除所有數據
    db.user.remove({isDelete:0}, {justOne:true})	# 只會刪除一條數據
    
    
    • delete:官方推薦
    db.user.deleteOne({isDelete: 0})		# 刪除一條數據
    db.user.deleteMany({isDelete: 0})		# 刪除所有數據
    
    
  • 查詢文檔

    • 格式:db.集合.find(query, {key1:0/1, key2:0/1, keyn:0/1})
      • query:查詢條件
      • key:表示字段名
      • 第二個參數要麼同時爲1表示顯示的字段,要麼同時爲0表示排除的字段
    db.user.find({},{name:1, age:1}).pretty()			# 只顯示name和age
    db.user.find({},{name:0, age:0}).pretty()			# 不顯示name和age
    
    
    • pretty():格式化顯示數據(類似於字典形式顯示)
    db.user.find().pretty()
    
    
    • findOne
     db.user.findOne({isDelete:0})	# 只返回條數據
    
    

虛擬環境

什麼是虛擬環境:
	一個隔離了外界干擾的,獨立的環境
虛擬環境的搭建:
1.pip install virtualenv
2.pip install virtualenvwrapper
3.whereis virtualenvwrapper.sh
4.source 上面的路徑信息
5.source ~/.bashrc

mkvirtualenv name   創建虛擬環境名稱(name就是自定義的虛擬環境名字)
rmvirtualenv name   刪除虛擬環境名稱
workon name 使用某個虛擬環境
deactivate  退出虛擬環境

6.重新打開終端  然後 sudo vim ~/.bashrc

export=/home/huguanyu/.virtualenvs
source /usr/share/virtualenvwrapper

然後強制保存

7.重新source ~/.bashrc

pip install --user virtualenv

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章