Python virtualenv 虚拟环境(详细使用,包含打包 exe/app )

2023-10-31

一、简介

  • virtualenv 官网Python 虚拟环境官方中文文档

  • 在开发 Python 应用程序的时候,系统上通常只会安装一个 Python 版本:例如 3.7。所有使用 pip 安装的第三方包都会被安装到 Pythonsite-packages 目录下。如果同时开发多个应用程序,而这些应用程序需要使用的某一个第三方包的版本各不相同,该怎么办?这种情况下,为每个应用程序“独立”安装一套 Python 运行环境显然是不现实的。这个难题,使用 virtualenv 可以轻易解决。

  • virtualenv 是专门用来为应用程序维护多套相互 隔离Python 运行环境的工具,借助 virtualenv 可以在一台主机上创建多套相互隔离的 Python 运行环境。

二、安装使用

  • 安装

    $ pip install virtualenv
    
  • 建个专门用来管理虚拟环境的文件夹,cd 进去,然后开始创建一个独立的 Python 虚拟运行环境 venv(虚拟环境文件名随意,这里借用官方的)

    # 创建虚拟环境(默认是一个干净的 Python 环境,之前 pip 安装的第三方库都不会被复制进来)
    $ virtualenv venv
    
    # 创建虚拟环境(指定要将之前 pip 安装的第三方库都复制到新建的虚拟环境中)
    $ virtualenv --system-site-packages venv
    
    # 创建虚拟环境(在多个 Python 版本的情况下,可以创建指定 Python 版本的虚拟环境,例如:~/.pyenv/versions/3.10.3/bin/python3 )
    $ virtualenv -p /usr/bin/python2 venv
    
    # 查看更多配置项
    $ virtualenv --help
    
  • 启动虚拟环境

    # 启动虚拟环境(以前老版本是 venv/Scripts/activate 的方式进行启动)
    $ source venv/bin/activate
    
  • 退出虚拟环境

    # 退出关闭虚拟环境
    $ deactivate
    
  • 启动案例

    # 启动虚拟环境(启动后前面会有的标志(venv))
    dengzemiaodeMacBook-Pro python % source venv/bin/activate
    # 列出当前虚拟环境的第三方库
    (venv) dengzemiaodeMacBook-Pro python % pip list
    Package    Version
    ---------- -------
    pip        22.3.1
    setuptools 65.5.1
    wheel      0.38.4
    # 退出虚拟环境
    (venv) dengzemiaodeMacBook-Pro python % deactivate
    dengzemiaodeMacBook-Pro python % 
    
  • 然后就可以当做一个正常 Python 开发环境去使用了,安装第三方插件什么的。

三、推荐 Python virturalenv + pyinstaller 最小化打包 python 程序

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python virtualenv 虚拟环境(详细使用,包含打包 exe/app ) 的相关文章

随机推荐

  • 【“码”上有你】智能合约库有奖征码第3期来袭

    智能合约库有奖征码 活动开展以来 伙伴们群策群力踊跃贡献 帮助夯实了合约库的基础功能 涌现了诸如共享经济 商品溯源等更多面向实际业务场景的合约样板 使得合约库更加满足开发者和行业多样化的诉求 为了让更多开发者参与到智能合约库组件优化中 拓展
  • 解析xml第二子节点

    import org w3c dom Document import org w3c dom Element import org w3c dom Node import org w3c dom NodeList import org xm
  • Linux下addr2line命令用法

    Linux下addr2line命令用于将程序指令地址转换为所对应的函数名 以及函数所在的源文件名和行号 当含有调试信息 g 的执行程序出现crash时 core dumped 可使用addr2line命令快速定位出错的位置 如果无法确定文件
  • 【1day】复现时空智友企业流程化管控系统文件上传漏洞

    注 该文章来自作者日常学习笔记 请勿利用文章内的相关技术从事非法测试 如因此产生的一切不良后果与作者无关 目录 一 漏洞描述 二 影响版本 三 资产测绘 四 漏洞复现 一 漏洞描
  • 构建面向未来的前端架构

    To build a house you need to put one brick on top of another 不积跬步无以至千里 大家好 我是柒八九 今天 我们来讲讲在 前端架构 要想在大项目中做到构建性能良好并且在架构方面具有
  • Hello Spring Cloud Alibaba(八)之使用spring security oAuth2

    Hello Spring Cloud Alibaba 八 之使用spring security oAuth2 oAuth2介绍 什么是 oAuth 什么是 Spring Security 认证服务器 导入包 配置文件 配置类 资源服务器 导
  • SQL关系代数——除法

    如何理解关系中的除法 定义 设关系 R除以关系S的结果为关系T 则T包含所有在R中但不在S中的属性及其值 且T的元组与S的元组的所有组合都在R 中 设有关系R S以及RS 如图所示 求RS S的结果 很容易求得结果为 张三 所以你很容易看出
  • 初入android驱动开发之字符设备(一)

    大学毕业 初入公司 招进去的是android驱动开发工程师的岗位 那时候刚进去 首先学到的就是如何搭建kernel android的编译环境 然后就是了解如何刷设备以及一些最基本的工具 如adb fastboot grep minicom
  • Jenkins学习笔记4

    配置构建流程 Jenkins任务创建 1 创建新任务 把这个Accept first connection改成 No Validation 问题得到解决 说明下 要确认下主分支的名称是master还是main 构建触发器这块暂时没有需要配置
  • debian安装dde桌面

    使用命令 sudo vi etc apt sources list d deepin git list添加以下内容 deb trusted yes arch amd64 https deepin community github io de
  • Jmap-JVM(十六)

    上篇文章说了ZGC是jdk11加入的 他是未来jvm垃圾收集器的奠定者 满足TB级别内存处理 STW时间保持在10ms以下 Jmap 我们可以先通过jmap histo 进程ip 来查看 但是这样看不太清晰 我们可以用这行命令生成一个文件
  • 理解 Pod 和容器设计模式

    本节课程要点 为什么需要 Pod Pod 的实现机制 详解容器设计模式 为什么需要 Pod 容器的基本概念 现在来看第一个问题 为什么需要 Pod 我们知道 Pod 是 Kubernetes 项目里面一个非常重要的概念 也是非常重要的一个原
  • 傅里叶分析——三角函数

    一 嘛叫频域 从我们出生 我们看到的世界都以时间贯穿 股票的走势 人的身高 汽车的轨迹都会随着时间发生改变 这种以时间作为参照来观察动态世界的方法我们称其为时域分析 而我们也想当然的认为 世间万物都在随着时间不停的改变 并且永远不会静止下来
  • synchronized锁升级详细过程

    目录 一 锁升级基础 1 偏向锁 2 轻量级锁 自旋锁 3 重量级锁 二 为什么要有锁升级过程 1 减少无竞争情况下的同步操作开销 2 尽量避免线程切换的开销 3 降低内存消耗 4 提高系统吞吐量 三 锁升级具体过程 一 锁升级基础 1 偏
  • 流程挖掘为什么已成为RPA智能自动化重要组成部分?

    流程挖掘为什么已成为RPA智能自动化重要组成部分 近年来 越来越多企业正通过部署RPA优化业务流程 保持企业的竞争优势 IDC调查发现 受调查的用户中 201家企业 35 表示 正在使用IPA中的流程挖掘功能 未来12 24个月内将有39
  • Windows下查看进程的命令行参数

    我们可以使用下面方法得到 在XP下是可以查看进程命令行参数的 使用下面的命令 wmic process get caption commandline value 如果想查询某一个进程的命令行参数 使用下列方式 wmic process w
  • no session found for current thread错误详解

    hibernate4与spring3整合时遇到no session found for current thread错误 在网上找了好多都说加上
  • three.js学习(第四天)之环境遮挡贴图与强度

    AO环境遮挡贴图 创建纹理 const textureLoader new THREE TextureLoader const doorColorTexture textureLoader load src assets textures
  • geth运行报错zsh: exec format error: ./geth

    使用 file geth 可知 原因多半是geth与对应的系统不匹配造成的 同理 AMD的mac也暂时用不了这个 可以从这里重新下载 https geth ethereum org downloads
  • Python virtualenv 虚拟环境(详细使用,包含打包 exe/app )

    一 简介 virtualenv 官网 Python 虚拟环境官方中文文档 在开发 Python 应用程序的时候 系统上通常只会安装一个 Python 版本 例如 3 7 所有使用 pip 安装的第三方包都会被安装到 Python 的 sit