1、为何要建立虚拟环境:html
应为在开发中会有同时对一个包不一样版本的需求,建立多个开发环境就能解决这个问题。或许也会有对python不一样版本的需求,这就须要使用程序来管理不一样的版本,virtualenv与virtualenvwrapper就比如能创造出来一个一个的独立容器,各个容器之间互不干扰,因此咱们就能够在每一个容器中安装咱们须要的依赖包python
虚拟环境是Python解释器的一个私有的副本,在这个环境中你能够安装私有包,并且不会影响系统中安装的全局Python解释器。虚拟环境很是的有用,能够在系统中Python解释器中避免包的混乱和版本的冲突。为每一个程序单首创建虚拟环境能够保证程序只能访问虚拟环境中的包,从而保持全局解释器的干净简洁,使其只做为(更多)虚拟环境的源。web
2、virtualenv 与 virtualenvwrapper-winshell
virtualenvwrapper-win能够看作是对virtualenv的优化,前者可让你省去操心虚拟环境存放在不一样的文件夹下带来的管理问题,注意必须在virtualenv安装成功的基础上安装app
安装virtualenv python2.7
$ pip install virtualenv
等待一会出现successfully...就说明成功了优化
virtualenv使用步骤命令网站
#先使用cd命令进入到你要虚拟环境存放的目录 cd操做方法见:https://www.cnblogs.com/Gaoqiking/p/10528079.html $ cd C:\Users\Administrator.SC-22\AppData\Local\Programs\Python\Python37\virtual_environment $ virtualenv envname #建立一个虚拟环境,envname为环境名,也是建立的文件夹名 #而后你须要进入上名新建立的文件夹下的scripts文件夹 $ cd envaname/scripts #也能够以绝对目录进去 $ cd cd C:\Users\Administrator.SC-22\AppData\Local\Programs\Python\Python37\virtual_environmentenvaname/scripts #这是绝对目录,下次你能够直接这样进入 $ activate #激活 其实是执行scripts里面的activate.bat
当成功激活后会显示虚拟环境名(powershell有些麻烦我认为),你不用关注我为何后面有一个 (拉姆他符号)spa
在虚拟环境中使用IDLE.net
当咱们建立了虚拟环境后,如果正常打开IDLE,是没法访问虚拟环境里面的包的,须要在命令行里输入
$ python -m idlelib.idle #注意,须要当前的虚拟空间已经激活
-m是将库中的模块当作脚本去运行
咱们还能够只在IDLE里编辑,而后运行的时候不按F5而是用命令行运行程序
(envs)C:\Users\Administrator.SC-> python ./envs/web_go/server.py #注意路径
virtualenv关闭虚拟环境
$ deactivate
使用这个参数建立的隔离环境能让你直接引用 /usr/lib/python2.7/site-packages (即本机全局site-package目录)中的依赖包,只在拥有全局site-packages目录的读写权限,而且你的应用要依赖其中的模块的状况下,该参数会颇有用。其余状况下不必使用该参数
virtualenv --system-site-packages -p python3 ./venv #-p为指定解释器所用的版本
至此,咱们就成功建立了一个虚拟环境,里面只有一些必须的头文件,咱们就能够安装咱们须要的依赖包了不过若是想让使用体验更完美,咱们还能够选择virtualenvwrapper-win
安装virtualenvwrapper-win(注意不是virtualenvwrapper)
$ pip install virtualenvwrapper-win
建立虚拟环境
完成后会自动进入,且不须要像virtualenv同样先指定文件夹(若是不指定会存在当前目录下),这个能够直接运行命令,虚拟环境会被存放在一个固定的文件夹(见下图框选)
$ mkvirtualenv envname
配置
假如你想改变存放的文件夹,你要配置系统环境变量(注意是新建系统变量)
经过设置系统变量“WORKON_HOME”,咱们就为virtualenvwrapper-win建立的虚拟环境从新制定了存放目录,你能够将原有的文件拷贝过去
使用workon 命令进入虚拟环境
$ workon envname # 进入虚拟环境名为envname $workon #会显示全部的虚拟环境
退出
$ deactivate
3、更多信息与参考经验
virtualenv中文文档:https://www.bookstack.cn/read/virtualenv-zh/date-2018.08.27.08.08.23
https://blog.csdn.net/godot06/article/details/81079064
https://www.cnblogs.com/cwp-bg/p/python.html
4、遇到问题
问题:Suggestion [3,General]: 找不到命令 activate,但它确实存在于当前位置。默认状况下,Windows PowerShell 不会从当前位置加载命令。若是信任此命令,请改成键入“.\activate”。有关详细信息,请参阅 "get-help about_Command_Precedence"。
解决办法:按照提示“改成键入.\activate”后又出现另外错误:
问题:.\activate : 没法加载文件 C:\Users\Administrator.SC-2002132\AppData\Local\Programs\Python\Python37\virtual_environment\.virtualenvs\envname\scripts\activate.ps1,由于在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
解决办法:认真阅读提示,进入提示网站,发现是执行策略问题,有几个解决办法
一是能够执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser RemoteSigned是执行策略, CurrentUser是策略做用域,,这些均可以在网站上找到解释
二是能够直接复制脚本内容进去执行
三是能够选用cmd来运行
四是气运丹田,大喊一声“妈”,或者关机解决