为什么需要虚拟环境?
1.辛辛苦苦写好一个项目,各种版本的第三方组件,凌乱的配置文件,在自己电脑上运行的十分流畅,想分享给同事使用,,,迁移过去之后,重建配置,各种跑不起来。
2.一些比较特殊的工具需要依托于不同的Python版本,就像 robotframework,仅仅支持Python 2.7和>= 3.6。
3.第三方库的管理,打包的时候避免有其他干扰的包。
4.等等
1.Python的虚拟环境方式
第一种.virtualenv
虚拟环境创建在当前目录下,所以每次启动都需要到虚拟环境所在的目录
- [ ] 官网地址:https://virtualenv.pypa.io/en/latest/
- [ ] 注意事项:虚拟环境只是从系统Python借用东西,实际上并不包含系统Python的所有数据。python可执行文件的版本在python.exe本身中进行了硬编码。
因此,如果升级系统Python,即使现在除了可执行文件之外,所有其他内容(标准库,二进制库等)都是新版本,虚拟环境仍会在升级之前报告该版本。
- [ ] 安装
-
pip install virtualenv
- [ ] 使用
PS E:Env> virtualenv demo ###创建虚拟环境 virtualenv 虚拟环境的名字(默认在当前路径)
created virtual environment CPython3.6.8.final.0-64 in 534ms
creator CPython3Windows(dest=E:Envdemo, clear=False, global=False)###创建虚拟环境
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:UsersixixiAppDataLocalpypavirtualenvseed-app-datav1.0.1)
activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:Env> ls
目录: E:Env
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2020/5/9 0:25 demo ###创建好的虚拟环境目录
PS E:Envdemo> ls ###查看虚拟环境内的目录
目录: E:Envdemo
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2020/5/9 0:25 Lib
d----- 2020/5/9 0:25 Scripts
-a---- 2020/5/9 0:25 405 pyvenv.cfg
PS E:Env> cd .demoScripts ###进入到虚拟环境内
PS E:EnvdemoScripts> .activate.bat ###启动虚拟环境
PS E:EnvdemoScripts> .deactivate.bat ###停止虚拟环境
第二种.virtualenvwrapper
virtualenv的虚拟环境管理方式注定了启动虚拟环境的时候需要找到虚
拟环境所在的目录,但是,如果文档管理不规范,就会导致虚拟环境目录找不到的情况,所以就需要一个管理虚拟环境的工具,于是就有了virtualenvwrapper
- [ ] 官网地址:https://virtualenvwrapper.readthedocs.io/en/latest/index.html#
- [ ] 安装
-
pip install virtualenvwrapper 会在当前用户下创建一个Env的文件夹,然后将这个虚拟环境安装到这个目录下
- [ ] 配置环境变量
- 修改默认路径
- 在我的电脑->右键->属性->高级系统设置->环境变量->系统变量中添加一个参数WORKON_HOME,将这个参数的值设置为你需要的路径。
- [ ] 使用
PS E:> mkvirtualenv demo01 ###创建虚拟环境 created virtual environment CPython3.6.8.final.0-64 in 399ms
creator CPython3Windows(dest=E:Envdemo01, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:UsersixixiAppDataLocalpypavirtualenvseed-app-datav1.0.1)
activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
PS E:> lsvirtualenv ###查看虚拟环境
dir /b /ad "E:Env"
==============================================================================
demo
demo01
PS E:> rmvirtualenv demo01 ###删除虚拟环境
Deleted E:Envdemo01
PS E:> lsvirtualenv ###查看虚拟环境
dir /b /ad "E:Env"
==============================================================================
demo