转自: 
http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html
virtualenv 是一个创建隔绝的Python环境的 工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。

它可以独立使用,代替Pipenv。

通过pip安装virtualenv:

$ pip install virtualenv
测试你的安装

$ virtualenv --version
为一个工程创建一个虚拟环境:
$ cd my_project_folder
$ virtualenv my_project
virtualenv my_project 将会在当前的目录中创建一个文件夹,包含了Python可执行文件, 以及 pip 库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 my_project ) 可以是任意的;若省略名字将会把文件均放在当前目录。

在任何你运行命令的目录中,这会创建Python的拷贝,并将之放在叫做 my_project 的文件中。

你可以选择使用一个Python解释器(比如``python2.7``):

$ virtualenv -p /usr/bin/python2.7 my_project
或者使用``~/.bashrc``的一个环境变量将解释器改为全局性的:

$ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7
要开始使用虚拟环境,其需要被激活:
$ source my_project/bin/activate
当前虚拟环境的名字会显示在提示符左侧(比如说 (my_project)你的电脑:你的工程 用户名$) 以让你知道它是激活的。从现在起,任何你使用pip安装的包将会放在 ``my_project 文件夹中, 与全局安装的Python隔绝开。

像平常一样安装包,比如:

$ pip install requests
如果你在虚拟环境中暂时完成了工作,则可以停用它:
$ deactivate
这将会回到系统默认的Python解释器,包括已安装的库也会回到默认的。

要删除一个虚拟环境,只需删除它的文件夹。(要这么做请执行 rm -rf my_project )

然后一段时间后,你可能会有很多个虚拟环境散落在系统各处,你将有可能忘记它们的名字或者位置。

运行带 --no-site-packages 选项的 virtualenv 将不会包括全局安装的包。 这可用于保持包列表干净,以防以后需要访问它。(这在 virtualenv 1.7及之后是默认行为)

为了保持你的环境的一致性,“冷冻住(freeze)”环境包当前的状态是个好主意。要这么做,请运行:

$ pip freeze > requirements.txt
这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。你可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。这将会使另一个不同的开发者(或者是你,如果你需要重新创建这样的环境) 在以后安装相同版本的相同包变得容易。

$ pip install -r requirements.txt
这能帮助确保安装、部署和开发者之间的一致性。

最后,记住在源码版本控制中排除掉虚拟环境文件夹,可在ignore的列表中加上它。

virtualenvwrapper
virtualenvwrapper 提供了一系列命令使得和虚拟环境工作变得愉快许多。它把你所有的虚拟环境都放在一个地方。

安装(确保 virtualenv 已经安装了):

$ pip install virtualenvwrapper
$ export WORKON_HOME=~/Envs
$ source /usr/local/bin/virtualenvwrapper.sh
(virtualenvwrapper 的完整安装指引.)

对于Windows,你可以使用 virtualenvwrapper-win 。

安装(确保 virtualenv 已经安装了):

$ pip install virtualenvwrapper-win
在Windows中,WORKON_HOME默认的路径是 %USERPROFILE%Envs 。

基本使用
创建一个虚拟环境:
$ mkvirtualenv my_project
这会在 ~/Envs 中创建 my_project 文件夹。

在虚拟环境上工作:
$ workon my_project
或者,你可以创建一个项目,它会创建虚拟环境,并在 $PROJECT_HOME 中创建一个项目目录。 当你使用 workon myproject 时,会 cd -ed 到项目目录中。

$ mkproject myproject
virtualenvwrapper 提供环境名字的tab补全功能。当你有很多环境, 并且很难记住它们的名字时,这就显得很有用。

workon 也能停止你当前所在的环境,所以你可以在环境之间快速的切换。

停止是一样的:
$ deactivate
删除:
$ rm virtualenv my_project

virtualenv 设置虚拟环境来运行不同版本的python的更多相关文章

  1. linux使用virtualenv构建虚拟环境,requirement.txt记录包版本

    virtualenv介绍: virtualenv把是一个把python应用隔离在一个虚拟环境中的工具.网上的例子较多,这里重点讲述怎么使用virtualenv来激活一个虚拟环境,并且记录虚拟环境中所依 ...

  2. 【pycharm】pycharm中设置virtualenv的虚拟环境为开发环境

    pycharm中设置virtualenv的虚拟环境 因为在pycharm写代码比较方便 但是有时候virtualenv安装的环境在pycharm中会有红色波浪线报语法错误.作为一个强迫症,这怎么能忍, ...

  3. Java-Runoob-高级教程-实例-环境设置实例:4.Java 实例 – 如何查看当前 Java 运行的版本?

    ylbtech-Java-Runoob-高级教程-实例-环境设置实例:4.Java 实例 – 如何查看当前 Java 运行的版本? 1.返回顶部 1. Java 实例 - 如何查看当前 Java 运行 ...

  4. virtualenv创建虚拟环境安装flask

    virtualenv 有什么用?如果你象我一样热爱 Python ,那么除了基于 Flask 的项目外 还会有其他项目用到 Python .当项目越来越多时就会面对使用不同版本的 Python 的 问 ...

  5. Python创建virtualenv(虚拟环境)方法

    本文目录 一 前言 二 通过virtualenv软件创建 三 在pycharm下创建 新建项目 四 已有项目使用和创建虚拟环境 五 参数说明 一 前言 需求:        --公司之有一台服务器   ...

  6. 如何利用pyenv 和virtualenv 在单机上搭建多版本python 虚拟开发环境

    pyenv 和virtualenv分别是干什么的? pyenv帮助你在一台机上建立多个版本的python环境, 并提供方便的切换方法. virtualenv则就是将一个目录建立为一个虚拟的python ...

  7. 多个版本的Python如何设置不冲突

    同时装有Python2.7和Python3.5说明. 问题1: 设置右键点击"Edit with IDLE"选项打开的Python版本? 在运行输入"regedit&qu ...

  8. 在虚拟环境下运行 Confluence 6

    这个页面针对运行在虚拟硬件环境下的 Confluence 提供一些信息. 概要 在虚拟环境(virtual machine (VM))下运行 Confluence 需要一些特定的技能来进行设定和进行管 ...

  9. windows 中 到底是用的哪个java.exe??? 删除了PATH变量的Java设置还是可以运行java.exe windows/system32

    到底是用的哪个java.exe??? 删除了PATH变量的Java设置还是可以运行java.exe JavaWindowsCC++C#  当电脑里面有多个jdk或是jre时,在cmd里面到底是用的哪个 ...

随机推荐

  1. Java实现邮箱激活验证2

    SendEmail.java [java] view plaincopyprint?   package com.app.tools; import java.util.Date; import ja ...

  2. Thunder团队Final版爱阅app发布视频

    视频链接:https://www.bilibili.com/video/av17008792/ 视频简介:首先出现的是我们团队的logo,接着是Final版爱阅app的功能展示,紧接着是我们团队的开发 ...

  3. c++ primer plus 第二章 课后题答案

    #include<iostream> using namespace std; int main() { cout << "My name is Jiantong C ...

  4. (转)netty、mina性能对比分析

    转自: http://blog.csdn.net/mindfloating/article/details/8622930 流行 NIO Framework netty 和 mina 性能测评与分析 ...

  5. java后台读取/解析 excel表格

    需求描述 前台需要上传excel表格,提交到后台,后台解析并返回给前台,展示在前台页面上! 前台部分代码与界面 <th style="padding: 7px 1px;width:15 ...

  6. hdu6398 计算几何

    不算严格的计算几何,就是各种分类 精度调好就能过,考虑三条边斜着放的所有情况即可 #include<bits/stdc++.h> #define LL long long #define ...

  7. hdu 1175 bfs+priority_queue

    连连看 如上图所示如果采用传统bfs的话,如果按照逆时针方向从(1,1)-->(3,4)搜索,会优先选择走拐四次弯的路径导致ans错误: Time Limit: 20000/10000 MS ( ...

  8. Oracle性能诊断艺术-学习笔记(索引访问方式)

    环境准备: 1.0 测试表 CREATE TABLE t ( id NUMBER, d1 DATE, n1 NUMBER, n2 NUMBER, n3 NUMBER, n4 NUMBER, n5 NU ...

  9. Leetcode 82

    有个错误就是member access within null pointer of type 'struct ListNode' 其实就是判断了指针是否异常了,比如NULL->next之类.要 ...

  10. n转m进制标准写法(必须记忆)

    #include <bits/stdc++.h> using namespace std; int main() { int n,m; cin >> n >> m; ...