前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python虚拟环境搭建及管理

python虚拟环境搭建及管理

作者头像
Homqyy
发布2023-03-03 14:18:40
6100
发布2023-03-03 14:18:40
举报
文章被收录于专栏:知行合一知行合一

前言

什么是虚拟环境?python为什么需要它?相信无论是学习或则开发都遇到过不同的python环境互不兼容的情况。比如,平时用cenos7的时候,yum 是用的 python2 解析器;而部署django服务器的时候则用的 python3。这样不兼容的情况如果不加以管理,随着类似情况的堆叠,慢慢的就会应接不暇,暴露出许多问题。

虚拟环境可以让你在开发或学习一个python项目的时候,将项目所需的库和解析器都放到一起进行管理。可以方便的进行变更、迁移和删除。今天要介绍的这个虚拟环境工具就是 virtualenv

示例环境

本文所用操作系统:CentOS 7

virtualenv使用示例

安装

1.开始安装在bash下执行命令:pip install virtualenv

2.测试是否安装成功,执行命令:virtualenv --version,如果安装成功会有如下类似结果:

代码语言:javascript
复制
[wang_hongqi@ser999118925586 ~]$ virtualenv --version
virtualenv 20.7.2 from /usr/local/lib/python3.6/site-packages/virtualenv/__init__.py

创建虚拟环境

假设我有个基于python3.6的django工程。但是当前系统下有两个python版本,一个是系统默认的python2.7,安装位置为/usr/bin/python;另一个是python3.6,安装位置为/usr/bin/python3.6

那么接着用virtualenv为django工程创建一个专门的python3.6环境,坐稳了,起飞~

1.那么为它创建虚拟环境django_env如下所示:

  1. 进入工程目录:cd django_project
  2. 创建虚拟环境django_envvirtualenv -p /usr/bin/python3.6 django_env
    • 其中-p参数是用来指定python解析器的位置,后续环境都是使用该解析器(如此一来,就能通过环境解决解析器兼容问题)。

创建虚拟环境 django_env

完成2的操作后会在工程目录下,生成一个虚拟环境目录django_env,该目录用来存放虚拟环境指示的解析器和后续通过pip安装的库等。(如此一来,可以保证环境的干净,因为在环境中安装的库都会被放在虚拟环境目录django_env中)

2.使用虚拟环境django_envsource django_env/bin/activate,如下所示:

使用环境 django_env

如上图所示,可以注意到,在终端的提示符前多了个环境名称。如果你执行后也是这个效果,那么就代表你进入到了这个环境中了。接着就可以开始你的一系列开发工作了,比如使用pip安装python库、基于此环境开始编译和开发django工程。

原理 其实virtualenv的原理很简单,主要是通过设置环境变量,比如PATH环境变量:

如上图所示,可以看出,PATH路径在开头被添加了/home/wang_hongqi/django_project/django_env/bin,这意味着后续在bash下执行命令的时候,会优先查找该目录。

3.退出虚拟环境:deactivate

其他常用命令

  • 查看已创建的环境:lsvirtualenv
  • 进到虚拟环境目录:cdvirtualenv
  • 进到虚拟环境中的site-packages目录:cdsitepackages
  • 显示site-packages目录的内容:lssitepackages
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年3月13日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 示例环境
  • virtualenv使用示例
    • 安装
      • 创建虚拟环境
      • 其他常用命令
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档