惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Recent Announcements
Recent Announcements
雷峰网
雷峰网
The GitHub Blog
The GitHub Blog
罗磊的独立博客
月光博客
月光博客
J
Java Code Geeks
A
About on SuperTechFans
Microsoft Security Blog
Microsoft Security Blog
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
U
Unit 42
C
Check Point Blog
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19)
Python 下各种环境隔离工具简介
微信公众号 · 2018-04-17 · via 陈少文的网站

1. 非标准库

1.1 virtualenv

virtualenv 是一个非常流行的用于创建独立的python libraries环境的工具。我强烈推荐你学习并了解它,因为他非常实用,并且应用广泛,很多人用它来搭建python开发环境。后面其他工具来主要与virtualenv来进行比较以说明差异。

virtualenv 通过安装一些列的可执行和库文件到某个目录(例如:env/),然后通过修改环境变量PATH中可执行文件(bin目录)目录的先后顺序来实现其功能,比如将 env/bin/ 放到环境变量PATH的前面。然后将一个 python或python3的可执行文件放到 env/bin/目录下,由于python运行时,会优先搜索与其路径接近的相对目录位置,这样就可达成优先使用virtualenv创建的libraries目录的目的,运行activated进入virtualenv环境后,就可以通过pip安装libraries到env/环境下

1.2 pyenv

pyenv 用于创建独立的python版本环境。例如,有可能你想要分别测试你的代码在 python2.6、2.7、3.3、3.4、3.5版本下的运行情况,那么你就需要类似pyenv这样的工具来快速切换python版本。一旦激活pyenv环境,它就将 ~/.pyenv/shims中的值放到环境变量PATH的前面,用于覆盖默认的python、pip可执行文件目录。它不会copy可执行文件,它仅仅是通过一些脚本代码基于 PYENV_VERSION或.python-version文件 来决定使用哪个python可执行文件运行python程序。另外,也可以通过 pyenv install 来安装多个python版本。

1.3 pyenv-virtualenv

pyenv-virtualenv, pyenv作者为pyenv写的一个插件,通过该插件可以让你方便的同时使用pyenv和virtualenv。另外,如果你使用的是python3.3及以上的版本,它会尝试使用venv而不是virtualenv。当然,其实你也可以自己配置同时使用pyenv和virtualenv,而不直接使用pyenv-virtualenv。

1.4 virtualenvwrapper

virtualenvwrapper 是virtualenv的一些列扩展,它提供了诸如 mkvirtualenv, lssitepackages 等命令行工具,特别是 workon 命令行工具,当你需要使用多个virtualenv目录时使用该工具特别方便。

1.5 pyenv-virtualenvwrapper

pyenv-virtualenvwrapper pyenv作者为pyenv写的另外一个插件,可方便集成virtualenvwrapper到pyenv。

1.6 pipenv

pipenv, requests 库的作者 Kenneth Reitz 编写的一个工具,目标是合并 Pipfile、pip、virtualenv 到同一个命令行工具中,实际使用中类似nodejs的依赖包管理工具npm。

2. 标准库

2.1 pyvenv

pyvenv 是python3自带的的一个标准工具,但是在python3.6中已经弃用,取而代之的是 venv (python3 -m venv)。

2.2 venv

venv 是 python3 自带的命令行工具,可以通过运行 python3 -m venv 启动。另外在某些发行版中,venv需要额外安装,比如Ubuntu需要安装 python3-venv。venv和virtualenv很接近,主要差别是不需要单独copy python可执行文件到相应目录。如果你不需要支持python2,那么你可以直接使用venv。不过到目前为止,python社区仍然更偏向于使用virtuanenv。

3. 来源