再续 virtualenv II
为什么搭建虚拟环境
搭建 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的更多相关文章
- 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 ...
- python——虚拟环境之virtualenv(windows10,64位)
1 问题 当我们拥有两个甚至多个项目A.B.C......,各个项目正常运行需求的python运行环境都不相同.而默认情况下,不管哪个项目,使用的都是全局的Python环境.上述情况,造成的问题就是, ...
- windows XP下Python2.7包管理工具安装-setuptool,pip、distribute、nose、virtualenv
在Python开发中为了对项目进行管理和调试.必须安装一些特定的软件包.据说业内这个叫做yak shaving-做一个非常酷非常绚丽的Python项目之前,必须做的一些枯燥无味的准备工作.本文介绍了s ...
- python的沙盒环境--virtualenv
VirtualEnv用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装. 使用 VirtualEnv 的理由: 隔离项目之间 ...
- alias导致virtualenv异常的分析和解法
title: alias导致virtualenv异常的分析和解法 toc: true comments: true date: 2016-06-27 23:40:56 tags: [OS X, ZSH ...
- 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 ...
- 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 ...
- 函数式Android编程(II):Kotlin语言的集合操作
原文标题:Functional Android (II): Collection operations in Kotlin 原文链接:http://antonioleiva.com/collectio ...
- 使用virtualenv搭建python3开发环境
问题描述 环境: CentOS6.5 想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本. 之前的做法是直接从源码安装python3,替换掉现有的开发环 ...
随机推荐
- (转)设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)
Sysctl是一个允许您改变正在运行中的Linux系统的接口.它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能.用sysctl可以读取设置超过五百 ...
- QP(Quote-Printable) 编码
QP(Quote-Printable) 方法,通常缩写为“Q”方法,其原理是把一个 8 bit 的字符用两个16进制数值表示,然后在前面加“=”.所以我们看到经过QP编码 后的文件通常是这 ...
- 理解promise 02
1:promise是什么? 就是(链式)包装的回调函数. 2:语法 new Promise( function(resolve, reject) {...} /* executor */ ); exe ...
- 【linux使用】bash shell命令行常用快捷键
移动: Ctrl + A: 移动到当前编辑的命令行首, Ctrl + E: 移动到当前编辑的命令行尾, Ctrl + F 或 ->:按字符右移(往命令行尾部方向,前移) Ctrl + B 或 & ...
- JavaScript常用方法(工具类的封装)
日期格式化 function formatDateTime(timeStamp) { var date = new Date(); date.setTime(timeStamp); var y = d ...
- day06 小数据池和编码
一. 上次课内容回顾字典:由{}括起来. 每个元素用逗号隔开, key:value的形式存储数据key: 不可变的. 可哈希的.增删改查:1. 增加: 直接用新key来赋值. dict[key] = ...
- P1053 篝火晚会
题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小教官”.在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有nnn个同学,编号从111到nnn.一开始 ...
- 【刷题】BZOJ 3238 [Ahoi2013]差异
Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output 54 HINT 2<=N< ...
- 已知UIScrollView放大后的Frame和放大之前的Frame计算放大的瞄点坐标
有时候在缩放后,需要知道该次缩放是在哪个坐标开始缩放的.如上篇已知缩放的点,然后在该点对其缩放.本篇其实是逆运算 (x,y)就是当初在该点进行缩放 化简之后很简单,代码如下: func getZoom ...
- 洛谷 P4585 [FJOI2015]火星商店问题 解题报告
P4585 [FJOI2015]火星商店问题 题目描述 火星上的一条商业街里按照商店的编号\(1,2,\dots,n\) ,依次排列着\(n\)个商店.商店里出售的琳琅满目的商品中,每种商品都用一个非 ...