为什么搭建虚拟环境

  搭建 Python 虚拟环境,可以方便的解决不同项目中对类库的依赖问题。当然,也可以方便地Python2,Python3 共存。避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序中能访问虚拟环境中的包,保持解释器环境的干净整洁。每个项目或者环境的类库相对独立,也就解决了共存的问题。

准备环境

  可以在自己的机器上建立两个文件如 python27,python36,然后分别将python2.7 和 3.6 安装在相应的路径下。为了更好的区分和使用,我们可以将他们的可执行文件重命名,然后各自配置环境变量。如:将python3.6的python.exe 重命名为 python3.exe, 然后我们就可以通过 在DOC 命令行中 执行 python3 来启动python3.6的解释器

  

然后通过pip install virtualenv 安装virtualenv 工具。 创建虚拟环境  virtualenv  testenv

指定python 解释器

virtualenv -p D:\python36\python3.exe testenv

  如下:在 E:\VirtualenvWin\EnvPython3 下创建了一个指定解释器为python3.6 的虚拟环境 。

  

激活虚拟环境

testenv\scripts\activate

  

  在启动虚拟环境以后,便可以通过pip install 命令为该环境安装相应的类库。 此时,所有的pip等安装什么的,都是在 env 隔离环境下了,然后就可以安装各种模块了。 不再使用时,将所有文件直接删除即可。

虚拟环境的使用

 虚拟环境激活后,便可以根据工程需求在virtual env上安装相应的依赖包。

其他

#停止 虚拟环境
deactivate #删除虚拟环境
rmvirtualenv testenv #冻结环境(freeze)就是固定当前环境的安装包
#packages.txt 是安装包列表文件
pip freeze> packages.txt #rebuild 一般在部署的时候要先将生产环境需要的安装包进行安装。
pip install -r packages.txt

Windows下注意事项

  在Windows下路径会与*nix下略有不同:脚本和可执行文件在Windows下位于 ENV\Scripts\ 下,而非 ENV/bin/ , 模块也会安装在 ENV\Lib\ 下,而非 ENV/lib/ 。

要在某个含有空格的目录下面创建virtualenv环境,就要安装 win32api 。

相关virtualenv:https://virtualenv-chinese-docs.readthedocs.io/en/latest/

envtest

再续 virtualenv II的更多相关文章

  1. virtualenv and virtualenvwrapper on Ubuntu 14.04

    In this post I’ll go over my attempt to setup virtual environments for Python development. Most Pyth ...

  2. python——虚拟环境之virtualenv(windows10,64位)

    1 问题 当我们拥有两个甚至多个项目A.B.C......,各个项目正常运行需求的python运行环境都不相同.而默认情况下,不管哪个项目,使用的都是全局的Python环境.上述情况,造成的问题就是, ...

  3. windows XP下Python2.7包管理工具安装-setuptool,pip、distribute、nose、virtualenv

    在Python开发中为了对项目进行管理和调试.必须安装一些特定的软件包.据说业内这个叫做yak shaving-做一个非常酷非常绚丽的Python项目之前,必须做的一些枯燥无味的准备工作.本文介绍了s ...

  4. python的沙盒环境--virtualenv

      VirtualEnv用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装. 使用 VirtualEnv 的理由: 隔离项目之间 ...

  5. alias导致virtualenv异常的分析和解法

    title: alias导致virtualenv异常的分析和解法 toc: true comments: true date: 2016-06-27 23:40:56 tags: [OS X, ZSH ...

  6. Leetcode 笔记 113 - Path Sum II

    题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...

  7. Leetcode 笔记 117 - Populating Next Right Pointers in Each Node II

    题目链接:Populating Next Right Pointers in Each Node II | LeetCode OJ Follow up for problem "Popula ...

  8. 函数式Android编程(II):Kotlin语言的集合操作

    原文标题:Functional Android (II): Collection operations in Kotlin 原文链接:http://antonioleiva.com/collectio ...

  9. 使用virtualenv搭建python3开发环境

    问题描述 环境: CentOS6.5 想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本. 之前的做法是直接从源码安装python3,替换掉现有的开发环 ...

随机推荐

  1. nodejs之Buffer

    Buffer是什么? 简单点理解,buff就是固定长度的uint8array.(es6已实现TypedArray). 由于是固定长度所以没有了splice,concat方法. 由于是固定类型所以没有了 ...

  2. [C/C++] 虚函数机制

    转自:c++ 虚函数的实现机制:笔记 1.c++实现多态的方法 其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面 ...

  3. 【Python】第一篇:python基础_1

    本篇内容 Python介绍 安装 第一个程序(hello,world) 变量 用户输入(input) 数据类型 数据运算 if判断 break和continue的区别 while 循环 一. Pyth ...

  4. LR安装No Background bmp defined in section General entry BGBmp的解决办法

    问题描述:我在win10装LR11总是报这个错误:No Background bmp defined in section "General" entry "BGBmp& ...

  5. 【JavaScript】checkBox的多选行<tr>信息获取

    页面的列表table显示(后台model.addAttribute("page", page);传来page信息,page通过foreach标签迭代展示表格数据): <!-- ...

  6. C++解析(28):异常处理

    0.目录 1.C语言异常处理 2.C++中的异常处理 3.小结 1.C语言异常处理 异常的概念: 程序在运行过程中可能产生异常 异常(Exception)与 Bug 的区别 异常是程序运行时可预料的执 ...

  7. IP组播技术

      1  概述 1.1  产生背景 传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播:另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播.如果要将信息发送给多 ...

  8. 【BZOJ3667】Rabin-Miller算法(Pollard_rho)

    [BZOJ3667]Rabin-Miller算法(Pollard_rho) 题面 呜,权限题,别问我是怎么做的(我肯定没有权限号啊) 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一 ...

  9. 【HEOI 2018】林克卡特树

    转载请注明出处:http://www.cnblogs.com/TSHugh/p/8776179.html 先说60分的.思路题解上很清晰: 问题似乎等价于选K+1条点不相交的链哎!F(x,k,0/1/ ...

  10. 【数学】【CF27E】 Number With The Given Amount Of Divisors

    传送门 Description 给定一个正整数\(n\),输出最小的整数,满足这个整数有n个因子 Input 一行一个整数\(n\) Output 一行一个整数,代表答案. Hint \(1~\leq ...