全文阅读6分钟
我在之前写过一篇「Python新手常见的几个问题及工具推荐」说过新手往往没有注意环境隔离,导致Python项目包与包之间冲突。
并且Python2与3代码执行有问题等等。鉴于此我今天给大家聊聊关于Python环境隔离问题以及如何进行隔离。
Virtualenv
我们都知道Python开发项目很容易,项目也经得起工业级别考验。很多开发者都会习惯用Python开发项目,但是由于我们每个项目情况都有些不一样。比如 今天可能用的是Django 1.8,明天可能用的是Django 2.1。
如果不进行环境隔离全局安装就会导致包的冲突,依赖不同,出现问题。
这个时候每个应用都需要一套「独立」的Python运行环境。而Virtualenv就是拿来为应用创建这一套「隔离」的Python运行环境。
首先用pip安装
pip install virtualenv
创建虚拟环境
sitin@test:/data/opt/test$ virtualenv venv
sitin@test:/data/opt/test$ source venv/bin/activate
(venv) sitin@test:/data/opt/test$ deactivate
sitin@test:/data/opt/test$
Virtualenvwrapper
上面如果我们配置了vitualenvwrapper会更加方便切换进入虚拟环境,做到一键切换进入虚拟环境。不用每次都去到指定项目目录里面进行 source venv/bin/activate
。
安装如下:
pip install virtualenvwrapper
安装好了,你可以在你的.bashrc或者.zshrc配置virtualenvwrapper,配置如下。
export WORKON_HOME=$HOME/.virtualenvs # 指定目录
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 隔离系统site-packages
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
if [[ -r /usr/local/bin/virtualenvwrapper.sh ]]; then
source /usr/local/bin/virtualenvwrapper.sh
else
echo "WARNING: Can't find virtualenvwrapper.sh"
fi
配置好我们可以创建我们虚拟环境方式如下:
mkvirtualenv your_project #创建
通过上面这种方式,让我们更加方便切换进入虚拟环境了。
Pyenv
说了vitualenv,vitualenvwrapper,进行Python 包的环境隔离,我们接下来聊聊我们终极利器pyenv
-- Python版本的隔离。
我们都知道python存在2,3问题,我们经常需要维护老版本Python2项目,也要考虑新版本Python3的迁移。
说它是终极利器是它除了python版本问题,也可以结合virtualenv,vitualenvwrapper一起使用。
目前pyenv这个库在github上面有14K+的star,可见受到到了非常多的关注。
这里面我们直接进入Mac的安装环节:
brew install pyenv
把下面的配置加入到我们的shell环境中,比如我的就是.zshrc。
# ---pyenv---
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
配置好之后,我们可以看到pyenv的shell补全,如下图。
pyenv的具体使用方式:
pyenv install -l # 获取安装列表
pyenv install 3.7.1 # 安装python3.7
pyenv global 3.7.1 # 设置全局python
pyenv virtualenv test-pyenv-venv # 创建虚拟包
pyenv activate test-pyenv-venv # 进入虚拟环境
pyenv deactivate # 退出
...
这里面我就不过多演示使用了,看一个官方的配图。
Tox
上面我们提到了关于使用pyenv进行python2,3的版本隔离情况,实际过程中想要写出兼容Python2,3的代码,那么我们不得不提一下这个测试工具--tox。
tox提供了非常方便的方式来运行我们的不同环境下的测试,非常方便我们在写测试的时候,同时对Python2,Python3的环境进行测试,这里面强烈推荐大家使用。
最后关于虚拟环境实际Python3 官方有原生venv支持虚拟环境代替vitualenv目前接受度还较低,大家感兴趣可以去了解下。我们虚拟环境就暂时聊到这儿,欢迎你给我留言,谈谈你的一些看法或思考。
往期回顾:
习惯养成计划
分享到:
相关推荐
在Windows系统下搭建...总的来说,这篇文档详细指导了如何在Windows系统下搭建一个完整的Python开发环境,涵盖了从安装与配置到项目开发环境搭建的全部步骤,对于数据分析和深度学习开发者来说具有非常高的实用价值。
Tencentcloud-sdk-python-vpc是腾讯云推出的一款Python SDK,专门用于操作虚拟私有云(Virtual Private Cloud,简称VPC)服务。本文将深入探讨这个库的核心功能、安装方法以及使用场景。 一、Tencentcloud-sdk-...
总结来说,`tencentcloud-sdk-python-tcaplusdb`是Python开发者接入和管理TCAPLUS DB的利器,其简洁的API设计和强大的功能使得在Python环境中处理分布式NoSQL数据库变得易如反掌。通过学习和熟练掌握这个库,开发者...
SubLine的开放性使得它支持大量第三方插件,这些插件可以增强SubLine的功能,例如,Linter插件可帮助检测代码规范,而虚拟环境插件则便于管理Python环境。 6. **集成开发环境(IDE)特性** 作为一款IDE,SubLine...
总的来说,"Tencentcloud-sdk-python-asw-3.0.305"是腾讯云为Python开发者提供的一把利器,它极大地简化了与ASW服务的交互过程,提升了运维效率,对于需要在腾讯云上进行大规模服务器管理的项目来说,无疑是一个宝贵...
总的来说,"tencentcloud-sdk-python-yunsou-3.0.448.tar.gz"是腾讯云为Python开发者打造的一把利器,通过这个SDK,开发者可以无缝集成Yunsou服务到自己的应用程序中,从而实现高效、便捷的搜索引擎功能。...
本篇将详细介绍PyPI官网下载的资源——tencentcloud-sdk-python-ses-3.0.352.tar.gz,这是腾讯云提供的Python Simple Email Service (SES) SDK,让我们一起探讨其功能、用法和重要性。 首先,tencentcloud-sdk-...
《Python库tencentcloud-sdk-python-mongodb:连接与操作腾讯云MongoDB数据库的利器》 在信息化高速发展的今天,数据库管理扮演着至关重要的角色。MongoDB作为一款流行的NoSQL数据库,以其灵活的数据模型、高性能和...
通常,SDK会提供一个安装指南,帮助开发者通过pip(Python的包管理器)将其安装到本地环境中。例如,你可以在命令行输入`pip install .`(当前目录为解压后的SDK目录)来安装这个SDK。 集成SDK到你的Python项目中,...
总的来说,"tencentcloud-sdk-python-sms"是Python开发者快速接入腾讯云短信服务的利器,它简化了开发流程,提高了开发效率。无论是在网站注册验证、订单通知,还是其他需要短信服务的场景,这个SDK都能提供强大而...
**Python-bluepy:Python封装的BLE利器** 在物联网(IoT)领域,蓝牙低功耗(Bluetooth Low Energy,简称BLE)技术因其低功耗、高效能的特点,被广泛应用于各种智能设备的通信。而在Python编程环境中,bluepy库提供...
它的出现是针对当前Web安全渗透测试经常会面临的一个问题,同时也是Web服务器加固方面一个很重要的部分,那就是Web服务器对外只开放一个80端口。Web服务器的安全防护可以是操作系统的端口定制或者是网管防火前的端口...
### Python基础——笔试面试利器 #### 一、Python的函数参数传递 在Python中,所有变量都是内存中对象的引用。这一点与C语言中的指针类似,但又有本质的不同。在C语言中,指针可以直接指向内存地址,而Python中的...
Wingware WingIDE Professional是一款专为Python开发者设计的智能集成开发环境(IDE),以其强大的调试功能、高效的代码编辑和丰富的项目管理工具而备受赞誉。在这个特定的版本——v3.2.12,它针对Windows操作系统...
python 学习利器,必须要下。python 学习利器,必须要下。
沙盘v5.33.3(x64)版|完整功能版|电脑实验室利器|电脑防护|电脑隐私保护|电脑安全最后一公里,可以运行各种东西在沙盘里,沙盘中的东西毁坏无法影响电脑实际的东西,确保电脑安全
**Pipenv:Python虚拟环境的一键搭建利器** 在Python开发中,为了隔离不同项目间的依赖包环境,以及处理Python2和Python3的版本差异,虚拟环境(Virtual Environment)成为了必不可少的工具。Pipenv正是这样一款...
渗透终极利器reDuh 此时gui版。很方便,服务端有aspx php jsp 端口转发
**Pyorbs:Python虚拟环境管理利器** Pyorbs 是一款专为Python开发者设计的工具,旨在简化Python虚拟环境的管理。它允许用户更高效、更便捷地创建、激活和管理多个独立的Python运行时环境,以满足不同项目对Python...
wingide是一款强大的python开发工具,是开发python的首选