很多情况下我们希望在项目中建立一个build.bat用于项目的自动构建,避免每次构建时都需要手动在控制台中输入命令。

例如对于 pyinstall 的项目,只需要如下的实现:

pyinstaller main.spec

但是对于大部分的 python 项目,我们一般都会创建一个虚拟环境,方便对项目依赖包的管理,这时候执行 bat 文件就会因为没有进入虚拟环境而出错,那么如何在 bat 中进入虚拟环境呢?

python的虚拟环境主要分为三种解决方案:virtualenv、pipenv 和 conda,这里以 virtualenv 为例:

使用virtualenv创建的虚拟环境一般会在项目目录下(也可能在其他地方)出现一个包含虚拟环境的文件夹,例如我在一个文件夹中执行命令:

virtualenv env

在该文件夹下面就会出现一个 env 文件夹:

此时进入虚拟环境应执行的指令应为:

./env/Scripts/activate

因此我们应该在我们的 bat 文件的第一行这样写:

call "./env/Scripts/activate"

例如:

执行后的结果:

可见这里的 pip list 是在虚拟环境中执行的。

如何在bat中进入虚拟环境的更多相关文章

  1. 如何在linux中创建虚拟环境

    安装虚拟环境的命令 : sudo pip install virtualenv sudo pip install virtualenvwrapper 安装完虚拟环境后,如果提示找不到mkvirtual ...

  2. 如何在Mac中配置Python虚拟环境,踩了好多坑

    如何在Mac中配置Python虚拟环境 1.安装virtualenv pip3 install virtualenv 2.安装virtualenvwrapper pip3 install virtua ...

  3. 二、消息队列之如何在C#中使用RabbitMQ(转载)

    二.消息队列之如何在C#中使用RabbitMQ 1.什么是RabbitMQ.详见 http://www.rabbitmq.com/. 作用就是提高系统的并发性,将一些不需要及时响应客户端且占用较多资源 ...

  4. 如何在CMDB中落地应用的概念?

    如何在CMDB中落地应用的概念? 我们前面讲了应用是整个微服务架构体系下运维的核心,而CMDB又是整个运维平台的基石.今天我就讲讲在CMDB中如何落地应用这个核心概念,以及如何建立应用集群分组的思路. ...

  5. 我是如何在SQLServer中处理每天四亿三千万记录的

    首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...

  6. 如何在SpringBoot中使用JSP ?但强烈不推荐,果断改Themeleaf吧

    做WEB项目,一定都用过JSP这个大牌.Spring MVC里面也可以很方便的将JSP与一个View关联起来,使用还是非常方便的.当你从一个传统的Spring MVC项目转入一个Spring Boot ...

  7. 如何在latex 中插入EPS格式图片

    如何在latex 中插入EPS格式图片 第一步:生成.eps格式的图片 1.利用visio画图,另存为pdf格式的图片 利用Adobe Acrobat裁边,使图片大小合适 另存为.eps格式,如下图所 ...

  8. 如何正确的使用json?如何在.Net中使用json?

    什么是json json是一种轻量级的数据交换格式,由N组键值对组成的字符串,完全独立于语言的文本格式. 为什么要使用json 在很久很久以前,调用第三方API时,我们通常是采用xml进行数据交互,但 ...

  9. [原创]如何在Parcelable中使用泛型

    [原创]如何在Parcelable中使用泛型 实体类在实现Parcelable接口时,除了要实现它的几个方法之外,还另外要定义一个静态常量CREATOR,如下例所示: public static cl ...

随机推荐

  1. 2022-08-15 - 初识MySQL

    MySQL数据库 数据库 数据库,又称为Database,简称DB.数据库就是一个文件集合. 顾名思义:是一个存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据,可以很方便的对里面 ...

  2. MapReduce核心原理(下)

    MapReduce 中的排序 MapTask 和 ReduceTask 都会对数据按key进行排序.该操作是 Hadoop 的默认行为,任何应用程序不管需不需要都会被排序.默认排序是字典顺序排序,排序 ...

  3. xray+awvs的联动

    前言:xray是一款强大的漏扫工具,配合awvs的爬站功能可以十分轻松实现全自动挖洞,这里awvs我是使用的是12版本 1.启动xray,监听本地指定端口,这里我监听的是2222端口 命令:xray_ ...

  4. [PostgreSql]生产级别数据库安装要考虑哪些问题?

    大家好,我是字母哥(coder)! 我让公司的小伙伴写一个生产级别的PostgreSQL的安装文档,结果他和我说:"不是用一个命令就能安装好么?还用写文档么?".我知道他想说的是这 ...

  5. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上)

    学习ASP.NET Core Blazor编程系列一--综述 一.概述 Blazor 是一个生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 U ...

  6. Hadoop相关WebUI端口记录

    以下均为默认端口号,可根据配置文件修改:HDFS:50070yarn:8088Hive:10002HBase:60010Spark:8080Flink:8081Storm:8080

  7. Java使用定时任务详解

    定时任务 目录 定时任务 SpringBoot定时任务 默认单线程 使用异步多线程 Spring定时任务XML配置(注解形式几乎同上) 使用springTask: ----springTask为spr ...

  8. SpringMVC 02: SpringMVC响应get和post请求 + 5种获取前端数据的方式

    响应get和post请求 SpringMVC中使用@RequestMapping注解完成对get请求和post请求的响应 项目结构和配置文件与SpringMVC博客集中的"SpringMVC ...

  9. Qt5.14.2使用虚拟键盘

    说明 这是关于Qt5(Qt5.1.4.2),QWidget编程使用Qt虚拟键盘(qtvirtualkeyboard) Tag: QT5,Qt,软件盘.虚拟键盘,Widget程序,QML  作者:474 ...

  10. 【设计模式】Java设计模式 - 组合模式

    Java设计模式 - 组合模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 原创作品,更多关注我CSDN: 一个有梦有戏的人 准备将博客园.CSDN一起记录分享自己 ...