如果在一台机器上,想开发多个不同的项目,需要用到同一个包的不同版本,如果还使用上面的命令,在同一个目录下安装或者更新,其它的项目必须就无法运行了,怎么办呢?
解决方案:虚拟环境。
那么什么是虚拟环境呢?
虚拟环境其实就是对真实 python 环境的复制,这样我们在复制的 python 环境中安装包就不会影响到真实的python环境。通过建立多个虚拟环境,在不同的虚拟环境中开发项目就实现了项目之间的隔离。
我们这里使用
virtualenv
来创建虚拟环境。pip 默认的源安装第三库会有点慢,可以配置一下其他的镜像源。
参考文章 -> Pip安装第三方库网速慢(解决方案)
在 cmd
窗口查看系统是否安装了 virtualenv
:
virtualenv --version
pip 安装 virtualenv
pip3 install virtualenv
pip3 install virtualenvwrapper-win
virtualenvwrapper-win
虚拟环境扩展包(指令便捷)
虚拟环境创建
在 cmd窗口 下创建 python3 虚拟环境 py_django
:
mkvirtualenv -p python3 py_django
注意:
Windows 创建的虚拟环境默认在 C:\Users\Administrator\Envs
, Administrator
代表我当前电脑使用的用户你们的可能在其他用户下,如需指定创建的虚拟环境的存放的路径,可以在电脑的系统环境变量中添加 WORKON_HOME
系统变量
安装虚拟环境
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
需保证 Linux
上有 Python3
的环境。
安装完虚拟环境后输入如下指令测试
mkvirtualenv test
如果提示找不到 mkvirtualenv
命令,须配置环境变量
# 1、创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
# 2、打开~/.bashrc文件
vim ~/.bashrc
# 2.1 添加如下两行
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
# 3、运行
source ~/.bashrc
WORKON_HOME
存放虚拟环境目录位置可以自己单独设置。
创建虚拟环境
mkvirtualenv py_flask
进入虚拟环境
workon py_flask
退出虚拟环境
如果所在环境为真实环境,会提示 deactivate
:未找到命令
deactivate py_flask
Windows 和 Linux 平台上的指令都一致。
指令 | 举例 | 作用 |
---|---|---|
mkvirtualenv | mkvirtualenv -p python3 虚拟环境名称 | 创建虚拟环境 |
deactivate | deactivate | 退出虚拟环境 |
workon | workon | 查看虚拟环境 |
workon | workon 虚拟环境名称 | 使用虚拟环境 |
rmvirtualenv | rmvirtualenv 虚拟环境名称 | 删除虚拟环境 |
注意:
先退出:deactivate
再删除:rmvirtualenv 虚拟环境名称
一、使用虚拟环境不会让主解释器好多库乱
二、例如在单独的虚拟环境下安装 Flask,就知道在后续开发中所使用的所有库,用 pip freeze
命令就知道你的项目需要什么环境,而在主解释器有好多项目没用到的库。使用虚拟环境到部署到服务器上则方便环境配置,不需要一个一个筛选所需库。
在虚拟环境中利用
pip freeze
查看项目所需库环境。pip freeze > requirements.txt
导出项目所需库信息。pip install -r requirements.tx
批量安装项目所需库。三、在同一台机器上开发多个项目,而遇到项目所需同一库的版本不一致。因此使用虚拟环境让每个项目独立隔离出来,可以单独使用不同版本库。
新建文件夹X
大自然用数百亿年创造出我们现实世界,而程序员用几百年创造出一个完全不同的虚拟世界。我们用键盘敲出一砖一瓦,用大脑构建一切。人们把1000视为权威,我们反其道行之,捍卫1024的地位。我们不是键盘侠,我们只是平凡世界中不凡的缔造者 。