1. 虚拟环境 virtual environment
借助虚拟化技术,把机器中一部分内容独立出来。这部分独立的内容一般被称为 “容器”。 在这个容器中,我们可以安装需要的依赖包,各个容器之间互相隔离,互不影响。
例如: 我们需要一个Django web开发环境,就可以做一个Django的虚拟环境,里面只安装Django相关的包。
我们需要一个爬虫框架Scrapy的开发环境,就可以只做一个Scrapy的虚拟环境,里面只安装Scrapy相关的包即可。
2. 为什么要用虚拟环境
a. 不同的项目依赖的python版本不一样。
b. 不同的项目需要下载各种不同的框架库,如Scrapy Beautiful soup flask django 等
c. 每个项目使用相同的框架但是使用的框架版本不一样。
根据以上问题,如果没有虚拟环境,开发者需要根据不同的项目来切换python的版本,或者根据不同项目的需求不断的更新或者卸载或者安装相应的库。
直接对python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,管理也相当混乱。
具体场景如下:
场景1:项目A需要某个框架1.0版本,项目B需要这个库的2.0版本。如果没有安装虚拟环境,那么当你使用这两个项目时,你就需要 来回 的卸载安装了,这样很容易就给你的项目带来莫名的错误;
场景2:公司之前的项目需要python2.7环境下运行,而你接手的项目需要在python3环境中运行,如果不使用虚拟环境,这这两个项目无法同时使用,使用python3则公司之前的项目可能无法运行,反正则新项目运行有麻烦。
而如果虚拟环境可以分别为这两个项目配置不同的运行环境,这样两个项目就可以同时运行。
场景3:开发某个应用工具,建虚拟环境可以避免安装不使用的包,这样在最后的打包过程中就可以减少包的体积,使应用轻量化。
3. 虚拟环境virtualenv的安装以及配置
虚拟环境安装需要借助系统中已安装的python环境,所以需要先安装python。这里我按照了python 2.7 和 3.6两个版本。
为什么选择python的这两个版本?
后期会通过这两个版本做一个web Django 项目。Django框架中既支持python2,又支持python3的最后一个版本是1.11。Django1.11支持2.7 .3.4,3.5,3.6三个版本。
使用Django1.11后期可以切换python2和python3的版本在python2和python3环境下部署测试。
a. 安装Python
1)下载安装包,并安装python2.7,将 python.exe 改成 python27.exe
2)下载安装包,并安装python3.6,将 python.exe 改成 python36.exe
3)设置环境变量PATH
增加python安装目录:D:\soft\Python36、D:\soft\Python27路径, 最好将Python37的目录放到Python27的目录之前,这样命令行会优先执行Python37中的程序。
4) 启动python命令要用: python27或python37,以指明运行哪个python
5) 更换国内镜像源
python36 -m pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/
执行命令后提示Writing to C:\Users\sbb\AppData\Roaming\pip\pip.ini。证明写入成功
国内常用Python镜像源:
华为:https://repo.huaweicloud.com/repository/pypi/simple
中科大:https://pypi.mirrors.ustc.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
豆瓣:http://pypi.douban.com/simple/
华中理工大学:http://pypi.hustunique.com/simple
山东理工大学:http://pypi.sdutlinux.org/simple
b. 安装virtualenv
在任意目录下,运行:python36 -m pip install virtualenv
如果提示如下内容:
You are using pip version 18.1, however version 21.3.1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
执行命令: python36 -m pip install --upgrade pip 然后重新执行 python36 -m pip install virtualenv
c. 使用virtualenv建立虚拟环境
1)创建虚拟环境目录: D:\python_envs
2)建立虚拟环境:
在D:\soft\Python36\Scripts目录执行:virtualenv.exe -p "D:\soft\Python27\python27.exe" "D:\python_envs\py27_dj111"
该命令将建立一个 py27_dj111 的目录和一个干净的 Python2 环境。
在D:\soft\Python36\Scripts目录执行:virtualenv.exe -p "D:\soft\Python36\python36.exe" "D:\python_envs\py36_dj111"
该命令将建立一个 py36_dj111 的目录和一个干净的 Python3 环境。
3)运行虚拟环境:在D:\python_envs\py27_dj111中运行 activate。即可进入这个 python 虚拟环境。
退出这个虚拟环境,可在任意路径下输入命令:deactivate
在python2.7和3.6环境中安装django1.11
运行 py27_dj111 虚拟环境,并在目录D:\python_envs\py27_dj111\Scripts中输入命令:
(pip install django==1.11 这个命令可能安装失败,如果失败,使用后面的命令安装)
pip install django==1.11 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
运行 py37_dj111 虚拟环境,并在目录D:\python_envs\py36_dj111\Scripts中输入命令:
pip install django==1.11
4. 虚拟环境virtualenvwrapper的安装以及配置(windows 下使用软件virtualenvwrapper-win安装)
比较一下几种虚拟环境:
virtualenvwrapper:解决了virtualenv的一个最大的缺点: 每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。
virtualenvwrapper将所有的虚拟环境目录全都集中起来放到一个目录中,并对不同的虚拟环境使用不同的目录来管理。
省去了每次开启虚拟环境active操作,直接workon进行切换,使得虚拟环境更加好用。
virtualenv: virtualenv同时支持 Python2 和 Python3,而且可以为每个虚拟环境指定 Python 解释器,并选择不继承基础版本的包。
venv: Python 从3.3 版本开始,自带了一个虚拟环境 venv。
它的很多操作都和 virtualenv 类似,但是两者运行机制不同。
因为仅仅支持 python 3.3 和以后版本。所以,要在 python2 上使用虚拟环境,依然要利用 virtualenv
pipenv:pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv,能够有效管理Python多个环境,各种第三方包及模块。
pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。主要完成两个功能:1) 创建虚拟环境 2) 依赖管理
windows 安装virtualenvwrapper , 因为依赖virtualenv, 所以安装前需要先安装virtualenv
在任意目录下,运行:python36 -m pip install virtualenvwrapper-win
配置虚拟环境的家目录:
如果不配置虚拟环境的家目录的话,virtualenvwrapper会在系统盘,当前所登陆用户的目录下创建一个Envs的文件夹,我们所创建的虚拟环境都会放到该文件夹中。
所以在此直接配置到非系统盘的路径下,在 我的电脑->右键->属性->高级系统设置->环境变量->系统变量 中添加一个参数 WORKON_HOME,将这个参数的值设置为你需要的路径。
设置WORKON_HOME = D:\python_envs
path中添加环境变量: D:\soft\Python36\Scripts (里面有workon等 virtualenvwrapper相关命令)
配置之后的常用命令:
列出虚拟环境列表:workon 新建虚拟环境:mkvirtualenv [虚拟环境名称] 启动/切换虚拟环境:workon [虚拟环境名称] 离开虚拟环境:deactivate
在目录D:\soft\Python36\Scripts中修改 mkvirtualenv.bat文件,
将set "venvwrapper.virtualenv_executable=virtualenv" 修改为 set "venvwrapper.virtualenv_executable=%CD%\virtualenv" 或者 set "venvwrapper.virtualenv_executable=%~dp0\virtualen
进入到D:\soft\Python36\Scripts中执行命令 workon查看虚拟环境列表,并创建虚拟环境命令如下:
mkvirtualenv创建虚拟环境后会自动进入该环境
查看虚拟环境中安装的包:pip freeze 或 pip list
收集当前环境中安装的包及其版本:
新建一个虚拟环境py27_dj112,然后安装requirements中软件及版本来安装。mkvirtualenv -p "D:\soft\Python27\python27.exe" py27_dj112
pip freeze 再次查看软件安装列表
还可以进入虚拟环境后,手动安装,通过 pip install 包名。 前面安装django演示过了。
5. pycharm中启用虚拟环境:
标签:virtualenv,windows,python,虚拟环境,pip,安装,目录 From: https://www.cnblogs.com/sunbenbao/p/16598344.html