官网:https://virtualenv.pypa.io/en/stable/userguide/

virtualenv通过创建独立Python开发环境的工具, 来解决依赖、版本问题

基本使用:

dahu@dahu-OptiPlex-3046:~/myfile$ virtualenv ENV  #创建一个名为ENV的目录, 并且安装了ENV/bin/python, 创建了lib,include,bin目录
New python executable in /home/dahu/myfile/ENV/bin/python
Installing setuptools, pip, wheel...done.
dahu@dahu-OptiPlex-3046:~/myfile$ cd ENV
dahu@dahu-OptiPlex-3046:~/myfile/ENV$ ls -lh
total 20K
drwxrwxr-x 2 dahu dahu 4.0K 9月 11 14:10 bin
drwxrwxr-x 2 dahu dahu 4.0K 9月 11 14:10 include
drwxrwxr-x 3 dahu dahu 4.0K 9月 11 14:10 lib
drwxrwxr-x 2 dahu dahu 4.0K 9月 11 14:10 local
-rw-rw-r-- 1 dahu dahu 60 9月 11 14:10 pip-selfcheck.json
  • lib,所有安装的python库都会放在这个目录中的lib/pythonx.x/site-packages/
  • bin,bin/python是在当前环境是使用的python解释器

继承/usr/lib/python2.7/site-packages下的所有库,当前版本默认是不继承全局库的,以前的用法是 --no-site-packages ,这个弃用了

virtualenv --system-site-packages ENV

目前我用的virtualenv的版本是

dahu@dahu-OptiPlex-:~/myfile/ENV$ virtualenv --version
15.1.

激活virtualenv

dahu@dahu-OptiPlex-:~/myfile/ENV$ source bin/activate
(ENV) dahu@dahu-OptiPlex-:~/myfile/ENV$

终端发生了变化,查看当前库,只有三个

(ENV) dahu@dahu-OptiPlex-:~/myfile/ENV$ pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
pip (9.0.)
setuptools (36.4.)
wheel (0.30.)
pip freeze  #显示所有依赖
pip freeze > requirement.txt #生成requirement.txt文件
pip install -r requirement.txt #根据requirement.txt生成相同的环境

关闭virtualenv

使用下面命令

$ deactivate

指定python版本

可以使用-p PYTHON_EXE选项在创建虚拟环境的时候指定python版本

#创建python2.7虚拟环境
➜ Test git:(master) ✗ virtualenv -p /usr/bin/python2. ENV2.
Running virtualenv with interpreter /usr/bin/python2.
New python executable in ENV2./bin/python
Installing setuptools, pip...done.
#创建python3.4虚拟环境
➜ Test git:(master) ✗ virtualenv -p /usr/local/bin/python3. ENV3.
Running virtualenv with interpreter /usr/local/bin/python3.
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'
New python executable in ENV3./bin/python3.
Also creating executable in ENV3./bin/python
Installing setuptools, pip...done.

基本解决python版本冲突问题和python库不同版本的问题

第二部分

virtualenv 也可以用在pycharm中

项目打开好了之后,设置里面: 1.找到项目解释器 2,创建虚拟环境,3.选择好虚拟的环境。

接下来,这个项目就已经用了虚拟环境了。

virtualenv python的虚拟环境的更多相关文章

  1. Python的虚拟环境virtualenv

    原文地址:blog.sina.com.cn/s/blog_4ddef8f80101eu0w.html Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpre ...

  2. 使用python的虚拟环境virtualenv

    技术背景 在前面几篇博客中我们介绍了容器的使用(博客1.博客2.博客3.博客4.博客5),容器是一种系统级的隔离方案,更多的强调资源上的隔离.而这里我们要介绍的python的虚拟环境,更加强调的是依赖 ...

  3. ubuntu下创建python的虚拟环境

    当我们在同一个机器上进行开发多个项目,每个项目于用到包的不同版本的时候,就很尴尬. 安装python包的命令是: sudo pip install 包名 这样的话,会将包安装到/usr/local/l ...

  4. python设置虚拟环境

    一.介绍 虚拟环境-virtualenv是一个用于隔绝的python环境的工具,虚拟环境与本地环境互相隔离,互不影响,例如我们要安装django2.0的版本但是本地已经安装了1.1的,这时只需要在本地 ...

  5. Python开发虚拟环境使用virtualenvwrapper的搭建及pycharm链接步骤

    virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包.创建的环境是独立的,互不干扰,无需sudo ...

  6. Python的虚拟环境

    Python自带env # 新建虚拟环境 python -m venv env_name # 激活虚拟环境 cd env_name cd Scripts activate # 退出虚拟环境 # 到达虚 ...

  7. centos 下Python独立虚拟环境创建

    virtualenv Python有着庞大的开源社区的支持,很自然就产生这么一个问题:第三方包参差不齐,如果我们想在服务器测试,或者升级某个包,就会导致生产环境产生杂乱,多余的第三方依赖包. virt ...

  8. 搭建python的虚拟环境

    文章连接:https://www.cnblogs.com/zlsgh/p/8485848.html ubuntu系统下Python虚拟环境的安装和使用        前言:进行python项目开发的时 ...

  9. python进阶-虚拟环境

    virtualenv # 安装 pip install virtualenv # 查看版本,确认安装完成 virtualenv --version # 创建虚拟环境 virtualenv my_env ...

随机推荐

  1. Linux下的tar压缩解压缩命令详解(转)

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

  2. php数组定义

    $arr = array( ,), //是’0' ,不是[‘0’] ,), ,), ,), ); $arr = [ '0' => array(2,3), //是’0' ,不是[‘0’] '1' ...

  3. 0-如何正确使用 Django的User Model

    本篇主要讨论一下User Model的使用技巧. 注意, 由于Django 1.5之后user model带来了很大的变化, 本篇内容只针对django 1.5之后的版本. 1. 确定 User Mo ...

  4. springsecurity remember-me 功能

    本文基于spring-security-web-4.1.2.RELEASE. 要实现rememberMe,有两种方案. 1.基于简单加密token的方法 首先需要在配置文件中加入<remembe ...

  5. LightOJ 1017 - Brush (III) 记忆化搜索+细节

    http://www.lightoj.com/volume_showproblem.php?problem=1017 题意:给出刷子的宽和最多横扫次数,问被扫除最多的点是多少个. 思路:状态设计DP[ ...

  6. C11关键字&字面值改善

    1.原始字面值改善 原始字面值可以直接表示字符串的实际含义,但是一些特殊字符就需要转义. std::string str = "D:\A\B\test.txt"; std::cou ...

  7. constant value too large

    出错现场: .model small .data byte_var dw dup(-, dup()) .stack .code 将byte_var dw 'abc',10h,2 dup(-1,2 du ...

  8. JAVA多线程提高五:原子性操作类的应用

    当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2.因为A和B线程在更新变量i ...

  9. PhotoSwipe 图片浏览插件使用方法

    一.简介 PhotoSwipe 是专为移动触摸设备设计的相册/画廊.兼容所有iPhone.iPad.黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产 ...

  10. new Date('2014/04/30') 和 new Date('2014-04-30') 的区别

    new Date('2014/04/30') Wed Apr 30 2014 00:00:00 GMT+0800 (中国标准时间) new Date('2014-04-30'); Wed Apr 30 ...