Python 作为最常用的脚本语言,有着非常丰富的第三方库,但是这也导致了 Python 的环境管理非常必要。本文将介绍 Python 的几个常用环境管理工具,以及如何使用它们。

前言

由于 Python 的第三方库非常丰富,因此在开发过程中,我们可能会使用到很多第三方库。

但是,这些第三方库可能会有不同的版本,而且不同的项目可能会使用不同的版本。

如果我们先在 A 项目中使用了老版本的第三方库,而后续在 B 项目中需要使用新版本的第三方库,覆盖了老版本的第三方库,那么 A 项目就可能会出现问题。

当前,个人使用过的 Python 的环境管理工具主要有 venvvirtualenvvirtualenvwrapperconda

venv

Python 3.3 之后,Python 自带了 venv 工具,是内置的一个模块,用于创建虚拟环境。

venv 环境管理

  1. # 创建环境
  2. python -m venv <env_dir>
  3. # 通常在当前目录下创建 .venv 目录作为虚拟环境
  4. python -m venv .venv
  5. # 激活环境,直接调用相应的脚本即可
  6. # Windows CMD
  7. .venv\Scripts\activate.bat
  8. # Windows PowerShell
  9. .venv\Scripts\Activate.ps1
  10. # Linux
  11. .venv\Scripts\activate
  12. # 退出环境
  13. deactivate
  14. # 删除环境,只需要删除相应的目录即可
  15. # Windows
  16. rmdir .venv
  17. # Linux
  18. rm -rf .venv

venv 包管理

激活环境后,直接用 pip 安装、卸载包即可。

virtualenv 以及 virtualenvwrapper

virtualenv 是一个第三方的包,用于创建虚拟环境。

venv 其实就是 virtualenv 的一个子集,相当于被官方收录了,可见其实力。

为了更方便地使用 virtualenv,可以使用 virtualenvwrapper ,它对 virtualenv 进行了封装,提供了更方便的命令。

在 Windows 上,可以使用 virtualenvwrapper-win

安装

  1. pip install virtualenv
  2. # Linux
  3. pip install virtualenvwrapper
  4. # Windows
  5. pip install virtualenvwrapper-win

virtualenvwrapper 环境管理

  1. # 创建环境
  2. mkvirtualenv <env_name>
  3. # 激活环境(仍然不太兼容最新的 PowerShell)
  4. workon <env_name>
  5. # 退出环境
  6. deactivate
  7. # 删除环境
  8. rmvirtualenv <env_name>

virtualenvwrapper 包管理

激活环境后,直接用 pip 安装、卸载包即可。

conda

conda 是一个开源跨平台语言无关的包管理与环境管理系统。

通常为了方便,可以直接下载包含各种常用软件包的 Anaconda,以及最简环境的 Miniconda

然而,conda 在 Windows 上的使用体验并不好,暂时还不支持新版本的 PowerShell,其官方的 Issue 也有提到这个问题。

所以当前我都是切到 Conmmand Prompt 也就是 CMD 中使用 conda

conda 环境管理

  1. # 创建环境
  2. conda create -n <env_name> [python=<python_version>] [package_name]
  3. # 激活环境
  4. conda activate <env_name>
  5. # 退出环境
  6. conda deactivate
  7. # 删除环境
  8. conda remove -n <env_name> --all

conda 包管理

  1. conda install <package_name>
  2. conda list
  3. conda remove <package_name>

总结

在 Windows 上,在借助 VScode 的 Python 插件的情况下,使用 venvvirtualenvwrapper 都还不错,可以快速的激活环境。

而在 Linux 上,使用 conda 也是一个不错的选择。

参考资料

本文作者: ywang_wnlo

本文链接: https://ywang-wnlo.github.io/posts/28f3e4d7/

版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

【学习笔记】Python 环境隔离的更多相关文章

  1. MongoDB学习笔记:Python 操作MongoDB

    MongoDB学习笔记:Python 操作MongoDB   Pymongo 安装 安装pymongopip install pymongoPyMongo是驱动程序,使python程序能够使用Mong ...

  2. Python学习笔记—Python基础1 介绍、发展史、安装、基本语法

    第一周学习笔记: 一.Python介绍      1.Python的创始人为吉多·范罗苏姆.1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  3. Python学习笔记--Python字符串连接方法总结

    声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...

  4. 学习笔记——python(继承)

    学习笔记(Python继承) 有几种叫法(父类-子类.基类-派生类)先拿代码演示一下: class father: def work(self): print("work>>&g ...

  5. 集智人工智能学习笔记Python#0

    1,学习基本Python语句规范: print('Hello world') print() 为函数 ‘Hello world’为字符串 2,表达式和语句的区别: 表达式有结果,运算就是表达式的一种: ...

  6. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  7. python学习笔记-python解释器

    刚开始学习python,首先要了解一下python解释器. 什么是python解释器? 编写python代码保存后,我们会得到一个以.py为扩展名的文本文件.要运行此文件,就需要python解释器去执 ...

  8. Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

  9. python学习笔记--python编程基础

    一.一个隆重的仪式 我们在学习语言的时候,第一个写的程序肯定都是hello world.来写第一个程序吧,其实很简单,python的语法就是简单.优雅,一个print就搞定. 1 print('hel ...

  10. python学习笔记--python简介

    一.什么是python? python是一种面向对象.解释型的高级程序语言.python具有语法简洁.易于学习.功能强大,可扩展性强,跨平台等诸多特点.1989年开始开发,于1991年发布第一个公开发 ...

随机推荐

  1. AtCoder Beginner Contest 174 个人题解(ABC水题,D思维,E题经典二分,F离线树状数组)

    做完本期以后,最近就不会再发布 AtCoder 的往届比赛了(备战蓝桥杯ing) 补题链接:Here ABC题都是水题,这里直接跳过 D - Alter Altar 题意:一个R-W串,可以进行两种操 ...

  2. 云网络智慧课堂-Qt程序代码开发规范

    序言: 编程规范可以提升代码可读性,提高可维护性. 目录: 一.命名规范 二.内存管理规范 三.函数方法规范 四.控制语句规范 五.注释规范 六.排版规范 七.版本管理规范 八.界面编程 词义解释:强 ...

  3. 玩转 Helm 之 upgrade

    0. 前言 在 玩转 Helm 一文中,简略提到了 Helm upgrade 的策略. 在实际项目开发上,upgrade 多是调研的重点.基于此,这里对 upgrade 继续展开. 1. basic ...

  4. # Linux操作补充

    取消高亮显示空格和Tab gvim ~/.vimrc # 在.vimrc文件中 set nohls # shell中执行 source ~/.vimrc ./vimrc是Gvim的配置文件 Gvim新 ...

  5. Go-GC

  6. [转帖]通过 TiUP 部署 TiDB 集群的拓扑文件配置

    https://docs.pingcap.com/zh/tidb/stable/tiup-cluster-topology-reference 通过 TiUP 部署或扩容 TiDB 集群时,需要提供一 ...

  7. [转帖]docker 最新版本升级

    文章目录 前言 一.卸载低版本docker 1.1 检查docker版本 1.2 删除docker 二.开始安装 2.1 安装所需依赖 2.2 设置docker yum源 2.3 查看所有可用版本 2 ...

  8. [转帖]超线程SMT究竟可以快多少?(AMD Ryzen版 )

    https://www.modb.pro/db/139224 昨天我们用Intel I9的10核,每个核2个threads的机器跑了内核的编译: 超线程SMT究竟可以快多少? 今天,我换一台机器,采用 ...

  9. [转帖]Linux开发环境——SCL软件集

    一.SCL简介 1.SCL简介 SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为RHEL/CentOS  Linux用户提供一 ...

  10. Flutter开发桌面应用的一些探索

    引言 在移动应用开发领域,Flutter已经赢得了广泛的认可和采用,成为了跨平台移动应用开发的瑞士军刀.然而,Flutter的魅力并不仅限于移动平台,它还可以用于开发桌面应用程序,为开发人员提供了一种 ...