虚拟开发环境搭建
发布时间:2023-06-28 14:31:21 所属栏目:教程 来源:
导读:本节讲解了什么是虚拟开发环境以及虚拟开发环境的功能,它用于解决版本依赖的问题,讲解了如何使用 virtualenv 命令创建、激活一个虚拟开发环境。
1. 什么是虚拟开发环境
虚拟开发环境是一个隔离的运行环境,每个
1. 什么是虚拟开发环境
虚拟开发环境是一个隔离的运行环境,每个
本节讲解了什么是虚拟开发环境以及虚拟开发环境的功能,它用于解决版本依赖的问题,讲解了如何使用 virtualenv 命令创建、激活一个虚拟开发环境。 1. 什么是虚拟开发环境 虚拟开发环境是一个隔离的运行环境,每个运行环境中包含有一套独立的组件:Python 解释器、各种第三方包。每个运行环境中包含的组件是私有的、不共享的,因此运行环境之间是隔离的。 使用 Python 开发一个项目,需要安装各种第三方包,项目有可能依赖特定版本的第三方包。例如,项目 A 依赖 3.5.3 版本的 redis 包,而项目 B 依赖 3.0.0 版本的 redis 包。通过为项目 A 和项目 B 分别设置一个虚拟开发环境,项目 A 的虚拟开发环境中包含 3.5.3 版本的 redis 包,项目 B 的虚拟开发环境中包含 3.0.0 版本的 redis 包,从而解决了第三方包的版本依赖问题。 2. 不同版本的包带来的问题 因为应用程序可能依赖特定版本的包,当系统中存在多个项目时,可能会出现冲突。例如: 有两个项目:项目 A 和 项目 B; 项目 A 依赖于 redis-3.5.3; 项目 B 依赖于 redis-3.0.0。 如果,需要同时进行两个项目的开发,则必须: 开发项目 A 时,卸载系统中现有的 redis 包,安装 redis-3.5.3; 开发项目 B 时,卸载系统中现有的 redis 包,安装 redis-3.0.0。 在两个项目之间切换时,用户需要频繁的安装和卸载 redis 包,显然是很不合理的。 3. 使用 virtual 解决冲突 上面我们说到,不同的项目依赖不同的包很有可能造成项目冲突问题,而 virtual 则正是为了解决这个问题而诞生的: virtualenv 命令可以创建一个隔离的运行环境: 每个运行环境中包含有一套组件:Python 解释器、各种第三方包; 每个运行环境中包含的组件是私有的、不共享的; 因此运行环境之间是隔离的。 使用 virtualenv 为项目 A 创建一个隔离环境,隔离环境中包括 python 解释器和 redis-3.5.3。使用 virtualenv 为项目 B 创建一个隔离环境,隔离环境中包括 python 解释器和 redis-3.0.0。 如果,需要同时进行两个项目的开发,则开发项目 A 时,进入项目 A 的虚拟环境,开发项目 B 时,进入项目 B 的虚拟环境,也可以同时打开两个终端,分别进行项目 A 和项目 B 的虚拟环境,同时进行两者的项目开发。每一个虚拟环境中的 Python 版本,包版本互不影响,自然完美解决了冲突问题。 4. virtualenv 的使用 既然知道了有 virtualenv 这个神器,那么我们就要把它用在我们的实际开发中去,下面我们就演示一下 virtualenv 如何使用: 4.1 安装 virtualenv 在 linux 下,使用 apt 命令安装 virtualenv: $ sudo apt install virtualenv 或者,使用 pip3 命令安装 virtualenv: $ sudo pip3 install virtualenv 4.2 安装一个纯净的虚拟环境 假设用户是 guest,当前目录是 /home/guest: $ pwd /home/guest 现在希望创建一个虚拟环境 pure,将虚拟环境的 python 和第三方包存放在 /home/guest/pure 目录下: $ virtualenv -p python3 --no-site-packages pure Already using interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in /home/guest/pure/bin/python3 Also creating executable in /home/guest/pure/bin/python Installing setuptools, pkg_resources, pip, wheel...done. 选项 -p python3,表示 Python 有两个版本 python2 和 python3,指定虚拟环境中的 python 版本为 python3;选项 --no-site-packages,表示不安装任何所第三方包,得到了一个不带任何第三方包的 “纯净” 的 Python 运行环境。选项 pure,表示将虚拟环境的 python 和第三方包存放在 pure 目录下,注意,创建虚拟环境后,不可以再移动虚拟环境目录 pure 的位置。 4.3 虚拟环境 pure 的内容 使用 virtualenv 命令创建虚拟环境,创建的目录 pure 中的内容如下: 目录 pure 中包含的文件功能如下表所示: 文件名 功能 bin 存放 python3、pip3 等程序 lib 存放第三方库 bin/activate 进入虚拟环境的脚本 4.4 进入虚拟环境 $ source pure/bin/activate bin/activate 是进行虚拟化环境的脚本; 使用 source 命令执行 bin/activate 脚本。 bin/activate 执行成功后,shell 的命令提示符变为: (pure) $ 原先的提示符是 $,现在是(pure) $; 提示用户现在处于 pure 环境中,此时输入 python3; 执行的 python3 命令是 pure/bin/python3; 而不是系统的 /usr/bin/python3 。 4.5 退出虚拟环境 在虚拟环境中,执行 deactivate,会退出虚拟环境: (pure) $ deactivate bin/deactivate 执行成功后,shell 的命令提示符变为: $ 原先的提示符是 (pure) $,现在是 $; 提示用户现在处于系统环境中,此时输入 python3; 执行的 python3 命令是系统的 /usr/bin/python3; 而不是 pure/bin/python3。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |