阅读目录

virtualenv简介

含义:

   virtual:虚拟,env:environment环境的简写,所以virtualenv就是虚拟环境,顾名思义,就是虚拟出来的一个新环境,比如我们使用的虚拟机、docker,它们都是把一部分的内容独立出来,这部分独立的内容相当于一个容器,在这个容器只呢个,我们可以“为所欲为”----安装需要的依赖包,软件..,同时这个容器是与外界相互独立的,容器与容器直接也是互相独立不影响。

为何要用虚拟环境:

虚拟环境相互独立,方便不同版本的模块在不同项目中运行

VirtualEnv能做什么呢?

  virtualenv可以搭建虚拟且独立的Python运行环境,使得单个项目的运行环境与其它项目独立起来。同时也可以用于在一台机器上创建多个独立的Python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装。

  virtualenv是一个非常不错的Python虚拟环境的创建工具,它最大的好处在于:可以让每个Python项目单独使用一个环境,而不会影响系统环境,也不会影响其它项目的环境。

  virtualenv可以用于创建独立的Python环境,在这些环境里面可以选择不同的Python版本或者不同的Packages,并且可以在没有root权限的情况下在环境里面重新安装新套件,互相不会产生任何影响,我们可以简单的认为虚拟环境就是一个沙箱系统,我们可以在里面“为所欲为 ”情况下还不会影响外面。

virtualenv安装和使用

virtualenv本质上是个python包, 使用pip安装:

pip3 install virtualenv

在工作目录下创建虚拟环境(默认在当前目录):注意需要自定义虚拟环境的名字!

创建虚拟环境:
cmd命令创建(创建目录为cmd命令当前目录,所以最好切换到所需要的目录下在进行创建)
(1) virtualenv env_t1 (创建纯净环境)
(2) virtualenv --system-site-packages env_t2 (创建环境,继承原安装的模块)

创建虚拟环境有2中模式,一个是纯净模式,一个是基于系统环境的创建(自带了系统装的所有模块)

-# 基于系统环境的创建模式,里面的模块其实是对系统的模块的一个引用,在虚拟环境中是卸载不掉的,因为它只是一种引用关系,除非系统卸载的模块,它才会没了。

-# 纯净模式,里面的不包含系统的模块,需要自己下载安装,从头开始,所以这是在虚拟环境下安装的,你可以在后期卸载。

一般来说,推荐使用纯净模式创建虚拟环境,这样根据自己的需求去安装第三方模块,同时如果想卸载的话也可以在虚拟环境中选择性的卸载。这样自由度更大,而不像另外一种模式,系统里有啥它都引用过来,而且还在虚拟环境中删除不了,影响加载速度等。

使用pip3 list 来查看当前环境下安装的模块列表

激活该虚拟环境:
-windows进到目录里,的Script文件夹输入:activate
-linux:soruse env1/Script/activate
退出虚拟环境:
-deactivate
在pycharm中使用虚拟环境:
-files--settings--Project--Project Interpreter--add选择虚拟环境路径下的python.exe即可

pipreqs模块的介绍和使用

当运行别人项目的时候,首先需要安装项目的依赖第三方模块,不然就无法运行,Python的pipreqs模块就给我们提供了自动生成项目依赖第三方包目录的功能

安装:

pip3 install pipreqs

使用:

# 然后在项目所在的目录下使用命令生成包含依赖内容的文件
pipreqs ./

如果出现编码格式错误:

UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 776: illegal multibyte sequence

解决方法在命令后面指定编码格式:

pipreqs ./ --encoding=utf8

如果已经生成过一次依赖包文件requirements.txt,但是又项目新增了一下模块,此时再在后面添加--force覆盖参数重写即可

pipreqs ./ --encoding='utf8' --force

拿到依赖包文件我们可以在项目主目录下快速自动下载依赖一键安装:

pip3 install -r requirements.txt 

tips:导出所有已安装的第三方模块:

pip3 freeze > package.txt

好文章来自:光着的身体

virtualenv虚拟环境搭建及pipreqs自动生成第三方模块简介的更多相关文章

  1. 利用python自动生成verilog模块例化模板

    一.前言 初入职场,一直忙着熟悉工作,就没什么时间更新博客.今天受“利奇马”的影响,只好宅在家中,写写技术文章.芯片设计规模日益庞大,编写脚本成了芯片开发人员必要的软技能.模块端口动不动就几十上百个, ...

  2. 怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

     因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我个人认为,好记性不如多做笔记多反思总结. 1.    前提条件 开发环境已正确配置 工程已解决JUnit依赖关系(pom ...

  3. 25.怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

    转自:https://blog.csdn.net/wangyj1992/article/details/78387728 因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我 ...

  4. thinkphp3.2如何自动生成后台模块并且怎么访问

    https://blog.csdn.net/whulovely/article/details/72773729 步骤一:在入口文件index.php下绑定Admin模块(这时候别再Home同级手动创 ...

  5. Matlab中使用脚本和xml文件自动生成bus模块

    帮一个老师写的小工具 在一个大工程中需要很多bus来组织信号,而为了规范接口,需要定义很多BusObject,用Matlab语言手写这些BusObject比较费工夫 所以用xml配置文件来写,也便于更 ...

  6. Java如何搭建脚手架(自动生成通用代码),创建自定义的archetype(项目模板)

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  7. tp5自动生成目录

    1.// 定义应用目录 define('APP_PATH', __DIR__ . '/../application/'); // 加载框架引导文件 require __DIR__ . '/../thi ...

  8. Thinkphp3.2.X自动生成应用目录

    从3.2.2版本开始,可以支持自动生成默认模块之外的模块目录以及批量生成控制器和模型类. 例如,如果我们需要生成一个Admin模块用于后台应用,在应用入口文件中定义如下: // 绑定Admin模块到当 ...

  9. Thinkphp5.0实战开发二------自动生成目录结构

    序言 ThinkPHP5.0 具备自动创建功能,可以用来自动生成需要的模块及目录结构和文件等,自动生成主要调用\think\Build 类库.ThinkPHP5.0中模块文件夹在application ...

随机推荐

  1. GDB的安装

    1.下载GDB7.10.1安装包 #wget http://ftp.gnu.org/gnu/gdb/gdb-7.10.1.tar.gz或者可以远程看下有哪些版本 http://ftp.gnu.org/ ...

  2. go get 无反应方法 Win/Linux 命令行、终端和 Git 代理设置

    go get -u -v 无反应方法 CMD要用管理员权限运行,否则设置无效 netsh winhttp set proxy proxy-server="https=127.0.0.1:10 ...

  3. centos安装浏览器【备份】

    chrome(谷歌)  添加源:sudo wget http://repo.fdzh.org/chrome/google-chrome-mirrors.repo -P /etc/yum.repos.d ...

  4. interior转换为interface

    在计算的过程中,我们想要将interior(内部面)转换为interface,操作如下:

  5. javascript中对一个对象数组按照对象某个属性进行排序

    需求:对timelist排序 安装keys . 分析:timelist 是个数组对象,里面包含属性 keys,val.这里借助数组sort方法 传入function <script> // ...

  6. ubuntu之路——day9.1 深度学习超参数的调优

    参数重要性: 第一阶:α即learning rate 第二阶:momentum中的β,hidden units的数量,mini-batch的大小 第三阶:hidden layers的数量,learni ...

  7. T-MAX组--项目冲刺(第二天)

    THE SECOND DAY 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 T-MAX组--项目冲刺(第二天) 团队名称 T-M ...

  8. Perl深度优先迷宫算法

    迷宫求解,可以用穷举法,将每个点的方向都穷举完:由于在求解过程中会遇到某一方向不可通过,此时就必须按原路返回. 想到用Perl数组来保存路径,记录每次所探索的方向,方便原路返回时得到上一步的方向,再退 ...

  9. getLocation 需要在 app.json 中声明 Permission 字段

    小程序开发中,清除授权状态后,重新编译,提示:getLocation 需要在 app.json 中声明 Permission 字段 需要在 app.json 里面增加 permission 属性配置( ...

  10. h2的时间类型和函数

    H2时间类型: (时间)TIME: 格式为 hh:mm:ss.对应到Java类型:java.sql.Time. (日期)DATE: 格式为 yyyy-MM-dd.对应到Java类型: java.sql ...