Python之虚拟环境venv实战详解
安装配置虚拟环境virtualenv
官方给出的建议是最好在一开始就创建虚拟环境。在不同环境下,我们使用不同命令,即可创建出一个名为venv的虚拟环境
最简的方式是使用python指令之间创建
# windows python -m venv venv #linux/macos python3 -m venv venv
Windows
重点讲解使用virtualenv创建虚拟环境
pip install virtualenv #安装最新的版本 pip install virtualenv==20.2.1 #指定virtualenv 的版本 pip install -i https://pypi.doubanio.com/simple/ virtualenv==20.2.1 # 测试否时安装成功 virtualenv --version
创建虚拟环境
关于系统默认的python环境,如果你的Windows中只装了一个python,那么这个python环境肯定就是默认的了!但如果你一个系统上配置了多个python环境,也就是多版本共存,那么肯定有个是你默认的python环境。
直接使用virtualenv
创建虚拟环境。
D:\env> virtualenv env1
上例,在D:\env
目录下,创建一个名为env1
的虚拟化境,这个虚拟环境相当于将系统默认的python环境拷贝了一份,只是没有拷贝其中的第三方包。
当你的虚拟环境创建成功后,它的主要目录结构是这样的,其中我们只关注重要的即可:
D:\env\env1 # env1中的主要目录和文件 ├─Lib # 依赖包目录,必要的工具 │ └─site-packages # 将来安装的第三方包也在这个目录中 │ ├─pip │ ├─pip-20.2.4.dist-info │ ├─pkg_resources │ ├─setuptools-50.3.2.dist-info │ ├─wheel │ ├─wheel-0.35.1.dist-info │ └─_distutils_hack └─Scripts # 一些可执行程序 ├─activate.bat # 启动虚拟环境 ├─deactivate.bat # 关闭虚拟环境 ├─python.exe # python解释器 ├─pip.exe # 包管理工具 pip 推荐使用 ├─easy_install.exe # 包管理工具 easy_install 用的不多了 └─wheel.exe # 包管理工具 wheel 用的也不是很多,但有机会用上
如果配置了多个python版本,且这个虚拟环境有需要指定的python环境,那么创建时要加参数了:
D:\env> virtualenv --python=python27 env2
--python
参数指定python版本。
使用
开启虚拟环境:activate
当你创建好了虚拟环境之后,想要使用需要开启:
D:\env>env1\Scripts\activate.bat
(env1) D:\env>
activate.bat
脚本负责启动当前的虚拟环境,启动成功后,命令行前会有个括号包着虚拟环境名,标示接下来的关于python的操作都基于当前虚拟环境。
(env1) D:\env>python -V Python 3.6.6 (env1) D:\env>pip -V pip 20.2.4 from D:\env\env1\lib\site-packages\pip (python 3.6) (env1) D:\env>pip list Package Version ---------- ------- pip 20.2.4 setuptools 50.3.2 wheel 0.35.1
由上面的示例可以看到,此时的虚拟环境是一个独立、干净的python环境。
我们可以在这个虚拟环境中,下载包、运行脚本等等都可以,来下个包试试:
(env1) D:\env>pip install requests (env1) D:\env>pip list Package Version ---------- --------- certifi 2020.11.8 chardet 3.0.4 idna 2.10 pip 20.2.4 requests 2.25.0 setuptools 50.3.2 urllib3 1.26.2 wheel 0.35.1
可以看到成功的将requests
模块下载到了当前的虚拟环境中。
关闭虚拟环境:
(env1) D:\env>env1\Scripts\deactivate.bat
D:\env>
deactivate.bat
脚本负责退出当前的虚拟环境。退出虚拟环境后,命令行前的括号也没有了。后续的python操作都使用的系统的python环境了。
删除虚拟环境
这没啥好说的,从磁盘的目录中找到env1
这个虚拟环境(其实也就是个目录),右键删除即可。
Linux
Linux中也可以使用虚拟环境,套路跟Windows中差不多,也是要提前配置好python环境。
[root@cs ~]# pip3 install -i https://pypi.doubanio.com/simple/ virtualenv==20.2.1
使用
创建虚拟环境
[root@cs env]# virtualenv env2 [root@cs env]# virtualenv --python=python27 env2
创建好虚拟环境后,其目录如下:
/tmp/env/env1 ├── bin │ ├── activate │ ├── activate.csh │ ├── activate.fish │ ├── activate.ps1 │ ├── activate_this.py │ ├── activate.xsh │ ├── easy_install │ ├── easy_install3 │ ├── easy_install-3.6 │ ├── easy_install3.6 │ ├── pip │ ├── pip3 │ ├── pip-3.6 │ ├── pip3.6 │ ├── python -> /usr/local/src/python36/bin/python3 │ ├── python3 -> python │ ├── python3.6 -> python │ ├── wheel │ ├── wheel3 │ ├── wheel-3.6 │ └── wheel3.6 ├── lib │ └── python3.6 │ └── site-packages │ ├── _distutils_hack │ ├── distutils-precedence.pth │ ├── easy_install.py │ ├── pip │ ├── pip-20.2.4.dist-info │ ├── pip-20.2.4.virtualenv │ ├── pkg_resources │ ├── setuptools │ ├── setuptools-50.3.2.dist-info │ ├── setuptools-50.3.2.virtualenv │ ├── _virtualenv.pth │ ├── _virtualenv.py │ ├── wheel │ ├── wheel-0.35.1.dist-info │ └── wheel-0.35.1.virtualenv └── pyvenv.cfg
细心的你可能发现,启动虚拟环境的activate
脚本在/env1/bin
目录中(这点跟Windows稍有区别),所以启动需要这么启动:
[root@cs env]# source /tmp/env/env1/bin/activate # 使用source启动虚拟环境 (env1) [root@cs env]# python -V Python 3.6.8 (env1) [root@cs env]# pip list Package Version ---------- ------- pip 20.2.4 setuptools 50.3.2 wheel 0.35.1 (env1) [root@cs env]# pip install requests (env1) [root@cs env]# pip list Package Version ---------- --------- certifi 2020.11.8 chardet 3.0.4 idna 2.10 pip 20.2.4 requests 2.25.0 setuptools 50.3.2 urllib3 1.26.2 wheel 0.35.1 (env1) [root@cs env]# deactivate # 退出虚拟环境 [root@cs env]#
跟Windows中另一个区别是,deactivate
命令不再是一个脚本文件,而是一个函数,这个函数写在activate
脚本中,当activate
脚本启动时,就添加到shell环境中,称为了一个变量,所以,我们在虚拟环境中的任何路径下都可以退出虚拟环境。
删除
无需多说,rm -rf
命令它不香么!
虚拟环境在Pycharm中的应用
Pycharm使用现有的虚拟环境#
现在,我们要开发上一小节创建的项目。
- 使用pycharm打开
env_demo1
项目根路径。 file
▶settings
▶project env_demo1
▶project interpreter
3因为虚拟环境之前创建好了,所以选择system interpreter
,然后右侧从本地找到虚拟环境中的解释器即可,完事一路ok。
4.完事,现在就用上了之前创建虚拟环境 env1 了:
pycharm创建虚拟环境#
pycharm集成了virtualenv的环境。
所以,我们可以在pycharm中直接创建虚拟环境。file
▶settings
▶project env_demo1
▶project interpreter
,点击设置按钮选择add
,配置相关参数即可。
一个干净的虚拟环境创建完毕。
pycharm创建django并同时创建虚拟环境#
pycharm集成了django开发环境。
所以,我们在使用pycharm创建django项目的时候,可以同时选择创建一个新的虚拟环境或者选择现有的虚拟环境或者python环境作用于当前的项目。
来看操作吧!file
▶new project
▶Django
非常感谢大佬的分享