当前位置: 首页 > news >正文

Mac中使用virtualenv和virtualenvwrapper

Virtualenv

介绍

在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。

因此,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。而 virtualenv就是一个可以帮助我们管理不同 Python 环境的绝好工具。virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境。

安装

 pip3 install virtualenv

这样就成功了

使用

创建

假如我们想要用scrapy去爬取某个网站的信息,我们不想再宿主环境总安装scrapy以及requests这些包,那我们就可以使用virtualenv了。

假设我们把这个虚拟环境放在~/workspaces/project_env/spider/目录下

 virtualenv ~/workspaces/project_env/spider/

这样虚拟环境就创建好了,我们可以看到在这个目录下油三个目录被建立

  • bin:包含一些在这个虚拟环境中可用的命令,以及开启虚拟环境的脚本 activate
  • include:包含虚拟环境中的头文件,包括 Python 的头文件
  • lib:这里面就是一些依赖库
激活
 source ~/workspaces/project_env/spider/bin/activate

此时我们就已经在虚拟环境中了

可以安装一下requests这个模块

 pip install requests

可以看到很快就成功

退出虚拟环境
 deactivate

virtualenvwrapper

介绍

我们刚才了解了virtualenv,我觉得比较麻烦,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source一下 activate,这就需要我们记住每个虚拟环境所在的目录。

一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,比如放到 ~/virtualenvs/,并对不同的虚拟环境使用不同的目录来管理。virtualenvwrapper 正是这样做的。并且,它还省去了每次开启虚拟环境时候的 source 操作,使得虚拟环境更加好用。

安装

 pip install virtualwrapper

这样我们就安装好了可以管理虚拟环境的神器

使用

配置

首先需要对virtualenvwrapper进行配置:

  • 需要指定一个环境变量,叫做WORKON_HOME,它是用来存放各种虚拟环境目录的目录
  • 需要export vitualenvwrapper这个模块存放的位置
  • 需要运行一下它的初始化工具 virtualenvwrapper.sh,可通过which virtualenvwrapper.sh查看位置,我的在/usr/local/bin/

由于每次都需要执行这两步操作,我们可以将其写入终端的配置文件中。

如果使用 bash,则添加到 ~/.bashrc 中

如果使用 zsh,则添加到 ~/.zshrc 中

这样每次启动终端的时候都会自动运行,终端启动之后 virtualenvwrapper 就可以用啦

 export WORKON_HOME='~/Workspaces/Envs'export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3source /usr/local/bin/virtualenvwrapper.sh

创建虚拟机

mkvirtualenv env

创建虚拟环境完成后,会自动切换到创建的虚拟环境中

当然也可以指定虚拟机的 python 版本

mkvirtualenv env -p C:\python27\python.exe

列出虚拟环境列表

workon 或者 lsvirtualenv

启动/切换虚拟环境

使用 workon [virtual-name] 即可切换到对应的虚拟环境

workon [虚拟环境名称]

删除虚拟环境

rmvirtualenv [虚拟环境名称]

离开虚拟环境,和 virutalenv 一样的命令

deactivate

相关文章:

Mac中使用virtualenv和virtualenvwrapper

Virtualenv 介绍 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。 因此,我们需要对于不同的工程使…...

wpf webBrowser控件 常用的函数和内存泄漏问题

介绍 WebBrowsers可以让我们在窗体中进行导航网页。 WebBrowser控件内部使用ie的引擎&#xff0c;因此使用WebBrowser我们必须安装ie浏览器&#xff08;windows默认安装的&#xff09;。 使用 直接在xmal中使用webBrowser控件 <WebBrowser x:Name"WebBrowser1"…...

AI游戏设计的半年度复盘;大模型+智能音箱再起波澜;昇思大模型技术公开课第2期;出海注册经验分享;如何使用LoRA微调Llama 2 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f525; 进步or毁灭&#xff1a;Nature 调研显示 1600 科学家对AI的割裂态度 国际顶级期刊 Nature 最近一项调研很有意思&#xff0c;全球 160…...

多线程 - 锁策略 CAS

常见的锁策略 此处谈到的锁策略,不局限于 Java,C,Python,数据库,操作系统……但凡是涉及到锁,都是可以应用到下列的锁策略的 乐观锁 vs 悲观锁 锁的实现者,预测接下来锁冲突(锁竞争,两个线程针对一个对象加锁,产生阻塞等待了)的概率是大,还是不大,根据这个冲突的概率,来接下…...

VP记录——The 2021 CCPC Weihai Onsite

网址 2021CCPC威海 赛时过题与罚时 A.Goodbye, Ziyin! 签到题&#xff0c;队友写的 #include<bits/stdc.h> using namespace std; int cnt[10], de[1000010]; int main() {int n;cin >> n;for(int i 1; i < n; i) {int u, v;scanf("%d %d", &…...

JavaWeb---Servlet

1.Srvlet概述 Servlet是运行在java服务器端的程序&#xff0c;用于接收和响应来着客户端基于HTTP协议的请求 如果想实现Servlet的功能&#xff0c;可以通过实现javax。servlet。Servlet接口或者继承它的实现类 核心方法&#xff1a;service&#xff08;&#xff09;&#xf…...

英语——方法篇——单词——谐音法+拼音法——50个单词记忆

theatre&#xff0c;剧场&#xff0c;太后th吃eat热re食物&#xff0c;就去剧场了 loud dolphin&#xff0c;做do脸皮厚plh在。。。里 humid&#xff0c;hu湖mi米d的 blender&#xff0c;b爸lend借给er儿。 tragedy&#xff0c;tr土人...

35道Rust面试题

这套Rust面试题包括了填空题、判断题、连线题和编码题等题型。 选择题 1 &#xff0c;下面哪个是打印变量language的正确方法&#xff1f; A&#xff0c;println("{}", language); B&#xff0c;println(language); C&#xff0c;println!("{}", langu…...

01 时钟配置初始化,debug

1. 开启debug series&#xff0c;否则只能下载一次&#xff0c;再次下载要配置boot 2.f0外部时钟配置 h750 配置 实测可用...

Halcon我的基础教程(一)(我的菜鸟教程笔记)-halcon仿射变换(Affine Transformation)的探究与学习

目录 什么是仿射变换?仿射变换有哪些方式?任何仿射变换都能由以下基本变换构造而来:在Halocn中,仿射变换具有重要的作用,那我们本文章重点讨论仿射变换基础性知识。 使用Halcon中的重要算子,仿射变换一般解决步骤,案例应用会在以后的文章中我们重点解答与讨论。 我们首先…...

c++视觉---中值滤波处理

中值滤波&#xff08;Median Filter&#xff09;是一种常用的非线性平滑滤波方法&#xff0c;用于去除图像中的噪声。它不像线性滤波&#xff08;如均值滤波或高斯滤波&#xff09;那样使用权重来计算平均值或加权平均值&#xff0c;而是选择滤波窗口内的像素值中的中间值作为输…...

Edge使用猴油脚本实战(实验室安全考试系统刷在线时长——网站永久自动刷新)

介绍 篡改猴 (Tampermonkey) 是拥有 超过 1000 万用户 的最流行的浏览器扩展之一。它允许用户自定义并增强您最喜爱的网页的功能。用户脚本是小型 JavaScript 程序&#xff0c;可用于向网页添加新功能或修改现有功能。使用 篡改猴&#xff0c;您可以轻松在任何网站上创建、管理…...

Vue 中 KeepAlive 内置缓存使用

KeepAlive 介绍及使用场景 KeepAlive 是 vue 中的内置组件&#xff0c;当多个组件动态切换时可以对实例状态进行缓存&#xff0c;用法如下 <router-view v-slot"{ Component }"><keep-alive><component :is"Component" /></keep-al…...

语言模型编码中/英文句子格式详解

文章目录 前言一、Bert的vocab.txt内容查看二、BERT模型转换方法(vocab.txt)三、vocab内容与模型转换对比四、中文编码总结 前言 最近一直在学习多模态大模型相关内容&#xff0c;特别是图像CV与语言LLM模型融合方法&#xff0c;如llama-1.5、blip、meta-transformer、glm等大…...

【Node.js】路由

基础使用 写法一&#xff1a; // server.js const http require(http); const fs require(fs); const route require(./route) http.createServer(function (req, res) {const myURL new URL(req.url, http://127.0.0.1)route(res, myURL.pathname)res.end() }).listen…...

matlab 2ask 4ask 信号调制

1 matlab 2ask close all clear all clcL =1000;Rb=2822400;%码元速率 Fs =Rb*8; Fc=Rb*30;%载波频率 Ld =L*Fs/Rb;%产生载波信号 t =0:1/Fs:L/Rb;carrier&...

Python利用jieba分词提取字符串中的省市区(字符串无规则)

目录 背景库&#xff08;jieba&#xff09;代码拓展结尾 背景 今天的需求就是在一串字符串中提取包含&#xff0c;省、市、区&#xff0c;该字符串不是一个正常的地址;,如下字符串 "安徽省、浙江省、江苏省、上海市,冷运标快首重1kg价格xx元,1.01kg(含)-5kg(不含)续重价…...

MuLogin防关联浏览器帮您一键实现Facebook账号多开

导言&#xff1a; 在当今数字化时代&#xff0c;社交媒体应用程序的普及程度越来越高。Facebook作为全球最大的社交媒体平台之一&#xff0c;拥有数十亿的用户。然而&#xff0c;对于一些用户来说&#xff0c;只拥有一个Facebook账号可能无法满足他们的需求。有时&#xff0c;…...

【C语言】每日一题(半月斩)——day4

目录 选择题 1、设变量已正确定义&#xff0c;以下不能统计出一行中输入字符个数&#xff08;不包含回车符&#xff09;的程序段是&#xff08; &#xff09; 2、运行以下程序后&#xff0c;如果从键盘上输入 65 14<回车> &#xff0c;则输出结果为&#xff08; &…...

Are you sure you want to continue connecting (yes/no) 每次ssh进

Lunix scp等命令不需要输入yes确认方法_scp不需要确认-CSDN博客 方法一&#xff1a;连接时加入StrictHostKeyCheckingno ssh -o StrictHostKeyCheckingno root192.168.1.100 方法二&#xff1a;修改/etc/ssh/ssh_config配置文件&#xff0c;添加&#xff1a; StrictHostKeyC…...

基于CircuitPython的Fruit Jam OS:在RP2350上构建复古微型计算机系统

1. 项目概述&#xff1a;当复古计算精神遇见现代微控制器如果你和我一样&#xff0c;对早期个人计算机那种开机即用、一切尽在掌控的纯粹体验抱有怀念&#xff0c;同时又痴迷于现代开源硬件带来的无限可能&#xff0c;那么Fruit Jam OS绝对是一个会让你眼前一亮的项目。它不是一…...

OPAL:基于OPA的实时策略数据分发与权限治理实践

1. 项目概述&#xff1a;什么是OPAL&#xff0c;以及它解决了什么核心痛点&#xff1f;如果你在负责一个微服务架构或者分布式系统的权限管理&#xff0c;大概率遇到过这样的场景&#xff1a;每次权限策略有更新&#xff0c;都需要重启服务、重新部署&#xff0c;或者等待一个漫…...

ARM ETMv4跟踪单元架构与寄存器详解

1. ARM ETMv4跟踪单元架构概述在嵌入式系统开发领域&#xff0c;指令跟踪技术是调试复杂软件问题的关键工具。ARM架构中的嵌入式跟踪宏单元(Embedded Trace Macrocell, ETM)作为处理器核心的实时跟踪组件&#xff0c;能够非侵入式地记录程序执行流程。ETMv4作为当前主流版本&am…...

PPO 原理与应用

1. PPO 在 RLHF 里到底是干什么的&#xff1f; 在 RLHF 里&#xff0c;我们通常已经有了一个经过 SFT 的模型。这个模型已经比较会回答问题了&#xff0c;但还不一定最符合人类偏好。 于是我们再训练一个 奖励模型 Reward Model&#xff0c;让它模仿人类判断&#xff1a; 这个回…...

从零理解无刷电机方波驱动:用STM32CubeMX配置TIM1 PWM与EXTI中断实现换相

STM32无刷电机方波驱动实战&#xff1a;CubeMX配置与六步换相详解 1. 无刷电机驱动基础认知 无刷直流电机&#xff08;BLDC&#xff09;凭借高效率、长寿命和低噪音特性&#xff0c;已成为工业自动化、消费电子和智能家居领域的核心动力元件。与传统有刷电机相比&#xff0c;BL…...

汽车电子实战指南:从零到一,用CANdb++ Editor构建你的首个DBC文件

1. 认识DBC文件&#xff1a;汽车电子的"通讯词典" 第一次接触DBC文件时&#xff0c;我把它想象成汽车电子系统的"通讯词典"。就像不同国家的人需要字典来理解彼此的语言&#xff0c;汽车里的各个ECU&#xff08;电子控制单元&#xff09;也需要DBC文件来解…...

Raspberry Pi Imager终极指南:快速上手树莓派系统安装

Raspberry Pi Imager终极指南&#xff1a;快速上手树莓派系统安装 【免费下载链接】rpi-imager The home of Raspberry Pi Imager, a user-friendly tool for creating bootable media for Raspberry Pi devices. 项目地址: https://gitcode.com/gh_mirrors/rp/rpi-imager …...

Mac玩转老游戏:手把手教你用Wineskin配置RPG Maker游戏所需RTP环境

Mac玩转老游戏&#xff1a;手把手教你用Wineskin配置RPG Maker游戏所需RTP环境 在Mac上重温经典RPG游戏是许多怀旧玩家的梦想&#xff0c;但RPG Maker游戏往往依赖Windows特有的运行时包&#xff08;RTP&#xff09;&#xff0c;这让Mac用户望而却步。本文将带你深入探索如何利…...

告别Canvas截图:用MediaProjection搞定Android状态栏和视频画面的完整截取方案

Android屏幕捕获终极方案&#xff1a;MediaProjection深度解析与实战 在移动应用开发中&#xff0c;屏幕捕获功能的需求日益增长&#xff0c;从用户反馈收集到操作演示录制&#xff0c;再到远程协作支持&#xff0c;这一功能已成为许多应用的核心竞争力。然而&#xff0c;传统基…...

Adobe-GenP终极指南:5分钟免费解锁Adobe全家桶的完整方案

Adobe-GenP终极指南&#xff1a;5分钟免费解锁Adobe全家桶的完整方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud昂贵的订阅费用而苦…...