为什么搭建虚拟环境

  搭建 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. SpringMVC 应知应会

    springMVC 是表现层技术,可以用来代替 struts2,下面是简略图:主要是处理器和视图,只有这两个部分需要编写代码. springMVC 三大组件:处理器映射器,处理器适配器,视图解析器. ...

  2. UVA12546_LCM Pair Sum

    题目的意思是求 [西伽马(p+q)]其中lcm(p,q)=n. 又见数论呀. 其实这个题目很简单,考虑清楚了可以很简单的方法飘过. 我一开始是这样来考虑的. 对于每一个单独的质因子,如果为p,它的次数 ...

  3. ZOJ3084_S-Nim

    题目的意思是这样的,给定你若干堆石子,每次你可以从任一堆取出某些固定数量的石子,每次取完后必须保证没堆石子的数量不为0,谁无法操作了就算fail. 刚刚开始看题目的时候有点也没有思路,甚至连Sg函数也 ...

  4. QoS专题-第1期-QoS理论篇

    QoS理论篇 1      QoS的产生 随着网络技术的飞速发展,IP网络已经从当初的单一数据网络向集成数据.语音.视频.游戏的多业务网络转变.网络中所承载的数据呈几何级倍数增长,而且这些业务对网络带 ...

  5. 【刷题】BZOJ 1453 [Wc]Dface双面棋盘

    Description Input Output Sample Input Sample Output HINT Solution 不强制在线的动态图问题,那就LCT了 类似二分图那道题目 对于四个方 ...

  6. byte数组转float实现与byte转换其它类型时进行&运算原理

    下面是将byte数组转换为float的实现 public static float getFloat(byte[] b) { int accum = 0; accum = accum|(b[0] &a ...

  7. Java进程配置文件Reload

    我们在开发Java程序的时候,很多常量信息都存在配置文件中,比如数据库连接信息.ip黑名单,事件的超时时间等等.当需要该这些配置的值时都需要重新启动进程,改动的配置才会生效,有时候线上的应用不能容忍这 ...

  8. 【BZOJ1063】【NOI2008】道路设计(动态规划)

    [BZOJ1063][NOI2008]道路设计(动态规划) 题面 BZOJ 题解 发现每个点最多只能被修一次等价于每个点最多只能和两条铁路相邻 考虑一个\(dp\) 设\(f[i][0/1/2]\)表 ...

  9. [ACM][2018南京预赛]Magical Girl Haze

    一.题面 样例输入: 15 6 11 2 21 3 42 4 33 4 13 5 64 5 2 样例输出: 3 二.思路 关键词:分层BFS 考试时觉得题干意思很清晰——求可将k条边赋值为0的最短路. ...

  10. 【arc076E】Connected?

    Portal -->arc076E Description 给你一个\(R*C\)的矩形,矩形中某些格子的端点上填了\(1\sim n\)这\(n\)个数字,每个数字出现了恰好两遍,现在要将每一 ...