笔记-python-多环境-virtualenv

1.      多环境

在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.6.4,所有第三方的包都会被pip安装到Python3的site-packages目录下。

如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。

在单个项目开发时没什么问题,但在多项目同时开发时可能会带来意想不到的一些问题,因此希望每一个项目有单独的环境和包路径。

多环境一般有两个层面:

  1. 项目文件独立:每个项目的依赖包是不同的,希望将本项目的依赖包放到本项目路径下;
  2. 编译器独立:可能会在不同的项目中使用不同的编译器版本,比如python2和3。

这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

2.      virtualenv

其原理是将系统相关变量改变,在退出后改回来。

2.1.    install

首先,用pip安装virtualenv:

pip3 install virtualenv

2.2.    创建虚拟环境

cd e:\python\vir\p1

virtalenv –no-site-packages venv

这时,虚拟环境创建完成,默认自动进入虚拟环境。

在路径下出现了一个venv目录,其中文件如下图所示:

scripts目录中包含python解释器文件及virtualenv环境控制命令文件。

lib则是包安装路径。

回看命令行,这时应该是这个样子的,代表进入了虚拟环境。

更多验证测试:

import sys

sys.executable

输出的编译器路径应该指向vir\scripts\python.exe

pip install lxml

可以在venv\Lib\site-packages下找到相关包文件。

2.3.    更多使用

  1. 激活虚拟环境:

win .\venv\Scripts\activate

linux source ./venv/bin/activate

  1. 关闭虚拟环境:

win .\venv\Scrapts\deactivate.bat

linux ./venv/bin/deactivate

奇怪的是linux下并没有该文件,但官方文档中也说这个命令可以退出。

后来使用exit退出,看了下文件,它大概相当于退出了一个ps。

  1. 常用命令参数

-p PYTHON_EXE,--python=PYTHON_EXE 指定编译器。

--no-site-packages 不拷贝第三方包。

--system-site-packages

2.4.    其它问题

  1. linux下virtualenv不能执行。

注意环境变量有没有该命令的路径,也可以使用全路径。

/usr/local/…../virtualenv

笔记-python-多环境-virtualenv的更多相关文章

  1. python笔记41-虚拟环境virtualenv

    前言 如果你是一个python初学者,我是不建议你搞python虚拟环境的,我看到很多python的初学者同学,使用最新版的pycharm,新建一个工程时候默认就是venu虚拟环境. 然后在使用cmd ...

  2. python独立环境——virtualenv

    安装: pip3 intall virtualenv   创建独立运行环境: 1. 进入项目文件夹根目录 2. 创建环境 Mac:myproject michael$ virtualenv --no- ...

  3. Python 隔离环境 virtualenv

    1) 安装 $ sudo pip3 install virtualenv 2) 创建并进入工程目录,例如 myproject $ mkdir myproject $ cd myproject 3) 在 ...

  4. python独立环境virtualenv(并在pycharm中指定)

    上篇文章中讲到 Django 如何启动以及配置 sessions 功能.sessions 功能用是跟踪用户的状态,经常结合 Cookie 功能实现自动登录功能. 所谓的“自动登录”指的是:我们登录一些 ...

  5. Python学习笔记(四十三)virtualenv (创建一套“隔离”的Python运行环境)

    摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108 ...

  6. 在sublimetext上打造一个兼容virtualenv的web&python开发环境

    利用Sublimetext3&virtualenv 打造一个Web&Python IDE 注: 环境:window|python3;以下使用的sublimetext插件均用packag ...

  7. 用 virtualenv 创建隔离的 Python 运行环境

    以 Ubuntu 14.04 系统为例,安装的 Python 和 Python3 分别是 2.7.6 和 3.4.3, 但有些项目,有些模块要求特定的 Python 版本.而当前系统默认的 Pytho ...

  8. 使用virtualenv为应用提供了隔离的Python运行环境

    在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如果我们要同时开发多个应用程序,那这 ...

  9. python的沙盒环境--virtualenv

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

随机推荐

  1. Visual Studio Code 入门教程

    Extensible and customizable.(可扩展的和可定制的,这是我喜欢它的原因) Want even more features? Install extensions to add ...

  2. Python开发环境Wing IDE的Blender的Python代码调试技巧

    Wing IDE是一个集成开发环境,可用于开发.测试和调试为Blender编写的Python代码,Blender是一个开源的3 D内容创建系统.Wing IDE提供自动完成.调用提示.强大的调试器.以 ...

  3. int **a 和 int (*a)[]的区别

    关于理论知识隔壁们的教程说的很详细了我就不多赘述了.我这边主要贴一段代码来看看这两种东西使用上的区别到底在哪. #include <stdio.h> int main(int argc, ...

  4. Javascript基础--数据类型

    一.基本数据类型 1.字符类型:表示字符的类型,例:'aaa',"aaaa",'123456',''(空字符) 2.数字类型:表示数字的类型,例:0,1,3.1415936等 特殊 ...

  5. FinFET简介

    什么是FET? FET 的全名是“场效电晶体(Field Effect Transistor,FET)”,先从大家较耳熟能详的“MOS”来说明.MOS 的全名是“金属-氧化物-半导体场效电晶体(Met ...

  6. IDEA 打包jar

    1.ctrl+shift+alt+s 弹出项目设置窗口,点击Artifacts页签,点+号,选择jar Empty.修改jar name,将右侧需要打包进去的资源拖到左侧,记住Output direc ...

  7. 【转载】#402 - Value Equality vs. Reference Equality

    When we normally think of "equality",we're thinking of value equality - the idea that the ...

  8. 使用selenium grid与BrowserMobProxyServer联合使用

    背景:项目主要是做埋点数据,要使用 BrowserMobProxyServer,它相当于做一个代理,在你访问一个网页时,通过代理,获取打开网页的数据,对比你需要对比数据,所以这个工具提供获取页面请求的 ...

  9. Python 语法基础

    之所以学习Python,第一个是他比较简单,寒假时间充裕,而且听说功能也很不错,最重要的是,我今年的项目就要用到它. 而且刘汝佳的书上说到,一个好的Acmer要是不会一点Python那就是太可惜了.废 ...

  10. CentOS 5.6怎么安装MongoDB数据库?

    1. 下载Linux版本的 MongoDB 数据库 到官方的下载页面下载mongodb的Linux版本,32位还是64位根据自己的情况自行选择 http://www.mongodb.org/downl ...