Python 虚拟环境 virtualenv

这篇文章是基于mac平台的,window平台请移步:window平台的python虚拟环境virtualenv

原因

比如App_1需要的lib版本为1.10,App_2需要的lib版本为1.12,这样在同一个环境中,同时开发App_1和App_2则需要隔离的环境。virtualenv很方便地提供了这种功能。


安装

pip install virtualenv

使用

创建虚拟环境

mkdir test_venv # 其实不是很必要提前创建一个目录
virtualenv -p /usr/local/bin/python test_venv --distribute --no-site-package

其中

-p /usr/local/bin/python
指定将使用/usr/local/bin/python的python解释器
我使用的Mac上同时安装了python2和python3,其中python3安装了virtualenv,仍然可以指定python2作为虚拟环境的python解释器
--distribute
使virtualenv使用新的基于发行版的包管理系统而不是 setuptools 获得的包。该选项会自动在新的虚拟环境中安装 pip ,这样就不需要手动安装了。
--no-site-package
在默认情况下,所有安装在系统范围内的包对于virtualenv是可见的。该选项在创建virtualenv时不会读取系统包

创建后的/test_venv/bin下为:

$ ls
activate        easy_install-2.7    python-config
activate.csh        pip         python2
activate.fish       pip2            python2.7
activate_this.py    pip2.7          wheel
easy_install        python

其中:

  • activate:这个virtualenv的激活文件
  • pip:这个virtualenv的独立pip
  • python:python解释器的一个副本
  • lib/python2.7:所有的新包会被存在这

激活虚拟环境

source test_venv/bin/activate

测试虚拟环境

$ which python
/Users/xiang/Desktop/test_venv/bin/python

停止虚拟环境

deactivate

删除虚拟环境

rm -rf test_venv

一些补充:
virtualenv拷贝了Python可执行文件的副本,并创建一些有用的脚本和安装了项目需要的软件包,你可以在项目的整个生命周期中安装/升级/删除这些包。 它也修改了一些搜索路径,例如PYTHONPATH,以确保:

  • 当安装包时,它们被安装在当前活动的virtualenv里,而不是系统范围内的Python路径;
  • 当import代码时,virtualenv将优先采取本环境中安装的包,而不是系统Python目录中安装的包;
  • 在默认情况下,所有安装在系统范围内的包对于virtualenv是可见的。

A question:
在使用过程中,在虚拟环境下通过命令rm -rf test_venv删除了虚拟环境,但terminal中仍在运行虚拟环境。求指教究竟发生了啥?当然退出后不能再次进入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值