资讯专栏INFORMATION COLUMN

Linux下使用 virtualenv 虚拟独立 Python 环境

付永刚 / 2031人阅读

摘要:另一个好处是,虚拟环境不需要管理员权限。当一个虚拟环境被激活后,程序的位置会被添加到中。比如,安装到虚拟环境中,使用如下命令安装过程会将和它的依赖集安装到虚拟环境中。

简介

在开发不同的应用时,我们可能需要不同的 Python 版本,同时可能还需要处理包的依赖、版本和间接权限问题。在同系统中,要解决这些问题往往非常棘手。在 Python 的开发环境中,为解决这样的问题最常用的方法是使用 virtualenv 包。 Virtualenv 是一个用来创建独立的 Python 环境的包,就类似于一个沙箱,将开发运行环境与系统隔离开来。

用 VirtualEnv 创建的多个 Python 环境相互独立,互不影响,它能够:

在没有权限的情况下安装新套件

不同应用可以使用不同的套件版本

套件升级不影响其他应用

这样的虚拟环境是在 Python 解释器上的一个私有复制。这样我们就可以在一个隔绝的环境下安装 packages,不会影响到系统中全局的 Python 解释器。虚拟环境非常有用,因为它可以防止系统出现包管理混乱和版本冲突的问题。为每个应用程序创建一个虚拟环境可以确保应用程序只能访问它们自己使用的包,从而全局解释器只作为一个源且依然整洁干净去更多的虚拟环境。另一个好处是,虚拟环境不需要管理员权限。

安装

这里只介绍 Linux 系统下的安装。在 Linux 下的安装方法多种多样,可以通过源码源码安装,也可以用 Python 的包管理工具 easy_installpip 安装,例如:

$ sudo easy_install virtualenv

或者:

$ sudo pip install virtualenv

如果你使用的是 Ubuntu 及其衍生版本,还可以通过如下方式安装:

$ sudo apt-get install python-virtualenv
创建虚拟环境

安装完成之后便可用 virtualenv 命令创建虚拟环境,只需要指定一个虚拟环境的名称即可:

$ virtualenv kvenv

创建过程输出如下信息:

Running virtualenv with interpreter /usr/bin/python2
New python executable in kvenv/bin/python2
Also creating executable in kvenv/bin/python
Installing setuptools, pip...done.

创建完成后会生成一个 kvenv 目录。也可以根据需要加上参数来指定所创建的虚拟环境的行为,例如加上 -p 参数指定 Python 版本。

激活虚拟环境

要激活创建的虚拟环境可以用如下命令:

$ source kvenv/bin/activate

激活成功后会在命令提示符前边加上 (kvenv) 字符。此时,我们 which python 看有什么不同:

(kvenv)konghy$[~] => which python
/home/konghy/kvenv/bin/python

会发现此时的 python 解释器执行的是虚拟环境下的,而不是系统全局的。Virtualenv 拷贝了 Python 可执行文件的副本,并创建一些有用的脚本和安装了项目需要的软件包,你可以在项目的整个生命周期中安装/升级/删除这些包。 它也修改了一些搜索路径,例如PYTHONPATH,以确保:

当安装包时,它们被安装在当前活动的virtualenv里,而不是系统范围内的Python路径。

当import代码时,virtualenv将优先采取本环境中安装的包,而不是系统Python目录中安装的包。

还有一点比较重要,在默认情况下,所有安装在系统范围内的包对于 virtualenv 是可见的。 这意味着如果你将 simplejson 安装在您的系统 Python 目录中,它会自动提供给所有的 virtualenvs 使用。 这种行为可以被更改,在创建 virtualenv 时增加 --no-site-packages 选项的 virtualenv 就不会读取系统包,如下:

$ virtualenv kvenv --no-site-packages

退出虚拟环境用如下命令:

$ deactivate
在虚拟环境中安装包

大多数的 Python 包是通过 pip 程序安装的,在创建虚拟环境的时候 virtualenv 会自动添加进去。当一个虚拟环境被激活后,pip 程序的位置会被添加到 PATH 中。比如,安装 Flask 到虚拟环境中,使用如下命令:

$ pip install flask

安装过程会将 Flask 和它的依赖集安装到虚拟环境中。验证是否安装成功,可以用如下方法:

(venv)$ python
>>> import flask
>>>

用如下命令可以查看当前环境安装了哪些包:

$ pip freeze
参考资料

http://flask123.sinaapp.com/a...

http://www.nowamagic.net/acad...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43075.html

相关文章

  • 如何管理你载的一大堆Python包【❤️win环境linux环境创建虚拟环境详解❤️】

    引入—— 解决两个在python开发中很常见的问题: Python很万能,这谁都知道(我也知道哈),但这就意味着——Python的库多,是真的多!你要用哪个库,就直接下载!pip install!很简单吧,是很简单!但是,这样会很直接的带来一个问题,也是很多新手容易犯得——你一看他的Python环境,全是第三方包,密密麻麻的,甚至于开个pycharm,加载第三方包都得加载半年,他还不知道为啥(傻...

    phoenixsky 评论0 收藏0
  • 为什么你的python版本一团糟?因为少了这个操作

    摘要:坑人的版本的版本问题一直是个广被吐槽的黑点。这些版本的冲突在开发中十分常见,而和的版本差异又加剧了这一问题。从而避免与其他版本发生干扰。 坑人的版本 Python 的版本问题一直是个广被吐槽的黑点。以至于有人调侃说: Python 是世界上最好的两种语言! 在这里我要说明下,对于初学者来说,版本间的语法差异其实并不大。现在刚开始学 Python 的人,放心大胆地 用最新版本 即可。业内...

    ThreeWords 评论0 收藏0
  • python虚拟环境:envirtualevn 、pyevn

    摘要:虚拟环境非常有用,因为它可以防止系统出现包管理混乱和版本冲突的问题。为每个应用程序创建一个虚拟环境可以确保应用程序只能访问它们自己使用的包,从而全局解释器只作为一个源且依然整洁干净去更多的虚拟环境。另一个好处是,虚拟环境不需要管理员权限。 https://www.jianshu.com/p/08c... virtualenv 虚拟环境是在Python解释器上的一个私有复制,你可以在一个...

    ghnor 评论0 收藏0
  • Python多版本切换工具-Pyenvvirtualenv及Anaconda科学计算环境的配置

    摘要:为了安装科学计算环境,控制好版本,今天上午总算折腾好了。切换和使用新的虚拟环境这样就能切换为这个版本的虚拟环境。通过输入查看现在版本,可以发现处于虚拟环境下了。指定包的版本多个版本并存,尤其是和的并存。下面用创建一个名叫的版本为的环境。 为了安装Anaconda科学计算环境,控制好python版本,今天上午总算折腾好了。 学习python有时希望在python2.7环境下,有时希望在...

    rozbo 评论0 收藏0
  • Python使用谷歌Cloud Speech API将语音转换为文字

    摘要:之前我们总结了使用谷歌将语音转换为文字的基本流程,然而那只是在命令行中使用实现的。配置开发环境笔者使用的是树莓派进行试验的,其他平台的配置方法可以在这里查找。设置验证登录谷歌云平台控制台,前往创建服务账号密钥界面。 之前我们总结了使用谷歌Cloud Speech API将语音转换为文字的基本流程,然而那只是在命令行中使用curl实现的。这次我们将总结在Python中使用Cloud Sp...

    red_bricks 评论0 收藏0

发表评论

0条评论

付永刚

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<