Python 学习之虚拟环境

news2024/9/24 15:23:24

一、为什么需要虚拟环境

到目前位置我们所有的第三方包安装都是直接通过 pip install xx 的方式进行安装的,这样安装会将那个包安装到你的系统级的 python 环境中。但是这样有一个问题,就是如果你现在 Diango 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9 开发的,让你来维护,但是 Django 1.10 不再兼容 Django 0.9 的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有 Django 1.10 和 Django 0.9 两套环境呢? 这时候我们就可以通过虚拟环境来解决这个问题。

二、如何使用虚拟环境

注意:以下操作是在macbook pro M2 系统中执行

1、安装virtualenv:

pip install virtualenv   //安装在python2的环境中

pip3 install virtualenv  //安装在python3的环境中

2、创建虚拟环境

virtualenv [虚拟环境的名字]  ,mac 默认创建的路径是在/User/[你的电脑用户名]下面

如果你当前的 Python3/Scripts 的查找路径在 Python2/Scripts 的前面,那么将会使用python3 作为这个虚拟环境的解释器。如果 python2/Scripts 在 python3/Scripts 前面,那么将会便用 python2 来作为这个虚拟环境的解释器。

3、进入环境

虚拟环境创建好了以后,那么可以进入到这个虚拟环境中,然后安装一些第三方包,进入虚拟环境在不同的操作系统中有不同的方式,一般分为两种,第一种是windows ,第二种是*nix :

  1. windows 进入虚拟环境:进入到虚拟环境的 Scripts 文件夹中,然后执行 activate
  2. *nix进入虚拟环境: source /path/to/virtualenv/bin/activate 一旦你进入到了这个虚拟环境中,你安装包,卸载包都是在这个虚拟环境中,不会影响到外面的环境。

sourse /User/[你的电脑用户名]/虚拟环境名字/bin/activate

4、退出虚拟环境

deactivate  退出当前虚拟环境

5、删除虚拟环境

rm -rf [虚拟环境目录]

三、virtualenvwrapper

virtualenvwrapper 这个软件包可以让我们管理虚拟环境变得更加简单,不用再跑到某个目录下通过 virtualenv 来创建虚拟环境,并目激活的时候也要跑到具体的目录下去激活,

1、安装virtualenvwrapper

注意:安装virtualenvwrapper时会自动将virtualenv安装

*nix:  pip install virtualenvwrapper

windows:  pip instal1 virtualenvwrapper-win

2、 virtualenvwrapper 的基本使用

  1. 创建虚拟环境:mkvirtualenv my_env
  2. 切换到某个虚拟环境 workon my_env
  3. 退出当前虚拟环境 deactivate
  4. 删除某个虚拟环境 rmvirtualenv my_env
  5. 列出所有虚拟环境 lsvirtualenv
  6. 进入到虚拟环境所在的目录 cdvirtualenv

3、修改mkvirtualenv的默认路径

修改WORKON_HOME 环境变量

四、报错

第一:问题:使用mkvirtualenv 创建虚拟环境终端报:zsh: command not found: mkvirtualenv

解决: 根据下面步骤配置环境变量

1、新建文件夹virtualenvs  方便管理多个虚拟环境

mkdir $HOME/.virtualenvs  

2、查看virtualenvwrapper.sh位置

  which virtualenvwrapper.sh

我的路径:/Library/Frameworks/Python.framework/Versions/3.12/bin//virtualenvwrapper.sh  

3、查看Python3位置

which python3

我的路径:/Library/Frameworks/Python.framework/Versions/3.12/bin//python3   

4、查看virtualenv位置

find / -name "virtualenv" 

我的路径:/Library/Frameworks/Python.framework/Versions/3.12/bin/virtualenv

5、设置环境变量

  1. open -e ~/.bash_profile 以编辑模式打开bash_profile
  2.  bash_profile中添加
#virtualenvwrapper

export WORKON_HOME=~/.virtualenvs

export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.12/bin//python3

# 指定virtualenv的路径

export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.12/bin/virtualenv

source /Library/Frameworks/Python.framework/Versions/3.12/bin//virtualenvwrapper.sh

command+S 保存,并在终端输入 source ~/.bash_profile 使上述修改生效

参考链接:【2024】 Mac 安装virtualenvwrapper 、环境配置_mac virtualenvwrapper-CSDN博客

新问题:注意:重启终端后再运行mkvirtualenv 的命令,还是会报zsh: command not found: mkvirtualenv,这里再次执行source ~/.bash_profile 即可解决问题,目前尚未寻找到更好的解决方式。欢迎大家来提供新的解决办法!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2160693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙 OS 开发单词打卡 APP 项目实战 20240922 笔记和源码分享

配套有完整的录播课, 需要的私信. 零基础入门级别, 有点前端基础都能学会. 效果截图: 代码截图: 页面完整代码: import { AnswerStatus } from ../enums/AnswerStatus import { PracticeStatus } from ../enums/PracticeStatus import { getRandomQuestions, Question …

江协科技STM32学习- P17 TIM输入捕获

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析

文章目录 C string 类详解:从入门到精通前言第一章:C 语言中的字符串 vs C string 类1.1 C 语言中的字符串1.2 C string 类的优势 第二章:string 类的构造与基础操作2.1 string 类的构造方法2.1.1 示例代码:构造字符串 2.2 string…

Kotlin 多种形式的 when 表达式(七)

导读大纲 1.0.1 在变量中捕捉 when 表达式1.0.2 对任意对象使用 when 表达式1.0.3 使用不带参数的 when 表达式 when 表达式专题系列 从枚举类引出 when 表达式 1.0.1 在变量中捕捉 when 表达式 在前面的示例中,when 表达式的评估值是color变量 它是通过调用 measureColor() …

pip的安装和使用

pip的安装和使用 1、 pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。便于我们对Python的资源包进行管理。 2、注:pip 已内置于 Python 3.4 和 2.7 及以上版本,其他版本需另行安装。 3、在安…

java并发工具包JUC(Java Util Concurrent)

1. 什么是JUC 1.1 JUC简介 JUC(Java Util Concurrent)是Java中的一个并发工具包,提供了一系列用于多线程编程的类和接口,旨在简化并发编程并提高其效率和可维护性。JUC库包含了许多强大的工具和机制,用于线程管理、同…

多比特AI事业部VP程伟光受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 武汉市多比特信息科技有限公司AI事业部VP程伟光先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“AI对于项目经理工作的影响和变化解析”。大会将于10月26-27日在北京举办&am…

如何将Vue项目部署至 nginx

一、准备工作 1.确保安装了开发软件 VS Code(此处可查阅安装 VS Code教程),确保相关插件安装成功 2.安装Node.js 和创建Vue项目(此处可查阅安装创建教程) 3.成功在VS Code运行一个Vue项目(此处可查阅运行…

【LeetCode】动态规划—打家劫舍(附完整Python/C++代码)

动态规划—#198. 打家劫舍 前言题目描述基本思路1. 问题定义:2. 理解问题和递推关系:3. 解决方法:4. 进一步优化:5. 小总结: 代码实现Python3代码实现Python 代码解释C代码实现C 代码解释 总结: 前言 在这个问题中,你是一个专业的小偷,计划偷窃沿街的房…

JinDouYun性能测试工具使用方法

1.功能介绍 2. 安卓端支持安卓6及以上的版本,ios支持大部分版本 3. 可以测试游戏,视频,普通应用的性能数据,数据精准,低延迟,无侵入 4.工具下载链接 筋斗云 5.后续功能添加,高版本支持&…

网页爬虫法律与道德:探索法律边界与道德规范

目录 引言 一、网络爬虫技术概述 1.1 定义与功能 1.2 技术原理 1.3 案例分析 二、网络爬虫的法律边界 2.1 合法性要求 2.2 刑事风险 2.3 案例分析 三、网络爬虫的道德规范 3.1 尊重版权和隐私 3.2 合理使用爬虫技术 3.3 透明度和社会责任 四、技术挑战与应对策略…

[linux 驱动]块设备驱动详解与实战

目录 1 描述 2 结构体 2.1 block_device_operations 2.2 gendisk 2.3 block_device 2.4 request_queue 2.5 request 2.6 bio 3.7 blk_mq_tag_set 3.8 blk_mq_ops 3 相关函数 3.1 注册注销块设备 3.1.1 register_blkdev 3.1.2 unregister_blkdev 3.2 gendisk 结构…

SpringBoot开发——整合Hutool工具类轻松生成验证码

文章目录 1、Hutool简介2、验证码效果展示2.1 扭曲干扰验证码2.2 线条干扰验证码2.3 圆圈干扰验证码3、验证码应用场景3.1. 用户注册与身份验证3.2. 支付验证3.3. 订单与物流通知3.4. 信息安全与隐私保护3.5. 通知与提醒3.6. 其他应用场景4、Hutool工具类实现验证码生成4.1 引入…

如何使用ssm实现基于VUE的儿童教育网站的设计与实现+vue

TOC ssm676基于VUE的儿童教育网站的设计与实现vue 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全…

API公共开放平台设计

背景 随着业务发展未来会有更多的三方应用接入公司平台,目前为服务商定制的机制无法满足三方应用快速接入,所以需要一个更加通用的解决方案,开放平台势在必行。 目标 设计一套通用协议,可以支持其他应用快速接入。 说明 本方案旨在设计整体架构,以及对为何这样设计做…

React 理解 re-render 的作用、概念,并提供详细的例子解释

一、什么是 re-render 在 React 中 re-render(重新渲染) 是经常发生的行为,主要确保视图要时刻保持最新的数据来呈现。 但每次发生 re-render 也是有代价的,比如数据状态、focus 焦点、表单数据、都得重置, 遇到代码…

获取商品销量详情API:深入解析返回值,助力电商决策

在电商行业,了解商品的销量详情对于商家制定营销策略、优化库存管理和提升用户体验至关重要。通过调用获取商品销量详情的API接口,商家可以实时获取关键的销售数据,从而做出更加明智的决策。本文将深入解析获取商品销量详情API的返回值&#…

linux信号| 学习信号三步走 | 学习信号需要打通哪些知识脉络?

前言: 本节内容主要讲解linux下信号的预备知识以及信号的概念, 信号部分我们将会分为几个阶段进行讲解:信号的概念, 信号的产生, 信号的保存。本节主要讲解信号 ps:本节内容适合学习了进程相关概念的友友们进行观看哦 目录 什么是…

轻松重置 MySQL 8.0 Root 密码的简便方法!

在Windows环境下安装MySQL数据后,如果忘记了 MySQL 8.0 的 root 密码,不必担心!通过 --skip-grant-tables 和 named-pipe 模式登录后,只需几步简单的 SQL 命令即可重置密码:刷新权限表、修改密码、再刷新权限&#xff…

SpringBoot+Thymeleaf租房管理系统

> 这是一个基于SpringBootThymeleafBootstrap实现的租房管理系统。 > 功能比较完善,包括用户注册/登录、房源登记、账单费用配置、统计报告等功能。 > 模拟真实使用环境,包括了自然人与法人的身份证明录入、房产证信息录入、通过邮件推送月…