粉丝312获赞1254


手把手教你在 windows 系统中使用 python 自带的 v amp。 v 模块创建虚拟环境。 v amp。 v 模块是 python 官方提供的用于创建轻量级虚拟环境的工具,无需额外安装。什么情况下需要创建虚拟环境?当你在电脑上开发不同的 python 项目时,不同项目可能依赖不同版本的包, 这个时候就需要使用虚拟环境将项目分开。在正式开始之前,先确认 python 解释器是否被正确安装。回到终端界面,通过 cd 命令切换到项目目录下, 或者打开项目所在文件夹,在上方地址栏中输入 c、 m、 d 并回车,直接进入当前目录的终端,在项目目录的终端中执行创建命令。 python 杠 n v f 虚拟环境名回车执行完成后,项目目录下会生成一个同名文件夹, 里面包含虚拟环境、独立的 python 解释器、 type、 依赖包、目录等,一个虚拟环境就创建完成了。需要注意的是,虚拟环境名 scripts activate, 点 betty 即可完成激活。激活成功后,命令行前缀会显示虚拟环境名,表示进入虚拟环境。 这些安装的报警作用于该环境,按需求安装依赖即可。使用完成后,记得执行命令 delete, 退出虚拟环境。若不需要这个虚拟环境了,找到文件夹直接删除即可,或者通过命令删除。

你有没有过这种感觉,脑子里面明明有一个特别牛的关于游戏或者虚拟世界的点子,但一想到自己不会编程,不会建模,这个想法就只能烂在肚子里。嗯,今天我们要聊的这个新 ai 技术,可能就是来解决这个问题的, 你看是不是特别有共鸣啊?就是那种感觉,你的脑海里已经构建出了一个无比宏大奇妙的世界,细节满满。但一想到要打开那些专业的软件,面对复杂的界面,从零开始,一点点大件,哎,那股热情瞬间就没了一大半。 这创意和技术之间啊,好像总有一道跨不过去的坎。对,问题就在这。 不是说现在没有工具,像 unity、 格斗这些引擎功能那是非常强大,但问题是学起来太费劲了,那个学习曲线简直是陡峭的吓人,对于我们这些没有编程背景的普通创作者来说,这个门槛真的太高了。 好,那我们就先来深入聊聊这个所谓的世界构建者的难题,也就是想象和现实之间的这道鸿沟到底具体是什么样子的。 那我们换个思路想象一下,有没有一种可能,就是我们什么都不用做,只需要张张嘴,用语言去描述我们脑子里的那个世界。比如我想要一个漂浮在云端的赛伯朋课程室,然后一个 ai 刷的一下就帮你把它建好了。 这听起来是不是有点科幻?但你别说,这恰恰就是我们今天要聊的这个方案的核心。所以今天的主角就登场了, worldcraft, 他 就是那个能听懂你的想法,并且帮你把世界建出来的 ai 世界构建师。 worldcraft 的 核心其实可以拆成两部分,理解起来很简单,一部分叫世界支架,你就可以把它想象成是盖房子的地基和骨架,它规定了所有基础的规则。 另一部分呢,叫世界公会,这个就厉害了,它就像一个超级施工队,里面全是 ai, 它们的工作就是把你说的那些话翻译成世界支架,能听懂的图纸和指令。 那这个世界公会,也就是 ai 施工队里面到底是怎么运作的呢?咱们来深入了解一下。你会发现它真的不像是一堆冷冰冰的代码,反而更像一个分工明确的专家团队。 你看这个流程,它其实就像一条生产线,我们用户的向法就是原材料从左边进去,然后经过这一连串不同 ai 的 处理,最后从右边出来的就是一个完整具体的虚拟场景了,每一步都有专门的 ai 负责。 这个 ai 施工队啊,分工特别清楚。首先你给出一个大概的想法,第一个上场的叫润色师,他帮你把想法变得更丰满、更具体。然后呢,管理人接受把这些文字描述变成带坐标的精确的布局图。 接下来最关键的一位来了评论家,他的工作就是找茬,检查布局里有没有不合理的地方,比如东西浮在半空中啊,或者门被堵住了等。评论家确认没问题了。 最后艺术家出场,他会根据最终的布局图,给所有东西配上风格统一的漂亮外观。你看,一套流程下来,非常专业。 听到这你可能会想,这听起来很棒,但有一个最核心的问题,你怎么教一个 ai, 让他别犯傻呢?怎么让他拥有我们人未觉得理所当然的空间常识呢? 对吧?就是这个问题,你怎么教 ai 去避免那些所谓的物理幻觉?比如我们都知道桌子得放在地上,不能飘在空中,门前面不能放个大箱子堵死, 这些对我们来说是常识,但怎么让 ai 从理解抽象的语言跨越到能遵守这些现实世界的物理规则呢?这可是个大难题 哎。它们的解决方法就特别有意思了,叫做逆向合成。你看传统的训练方法,就是给 ai 看成千上万个完美的正确的例子,让它去模仿。 但 word graph 不 这么干,他反其道而行之,他先自己生成一堆完美的布局,然后故意把这些布局搞坏,制造出各种各样的错误,再让 ai 去学习怎么把这些错误给修复好。 这个思路真的绝了,传统训练就像是让学生只背标准答案,考题稍微变一下可能就不会了。而 worldcraft 的 训练呢?它专门弄了个叫捣蛋猴的 ai, 这个 ai 的 工作只有一个,就是搞破坏,故意制造错误。 然后呢,让另一个 ai 来当修理工,专门修复这些错误。这不就是我们常说的从错误中学习吗?通过这个过程, ai 才真正理解了什么是对的,什么是错的,以及遇到问题该怎么解决 好了。理论听起来很酷,那这套独特的训练方法到底管不管用呢?咱们别说虚的,直接看结果。 你看这个对比,简直是天壤之别。左边是 warcraft 生成的,你看这个场景,复杂合理,细节丰富,完全就是我们想象中的样子。再看右边,是其他工具用同样的描述生成的。 哎,这都是啥跟啥呀?结构简单不说,感觉都对不上号,逻辑也很混乱,不光质量高,速度也快得吓人。你看这个图, worldcraft 生成一个能用的世界,平均只要四分多钟, 而其他工具呢?一个要将近十分钟,另一个甚至要超过十五分钟,这差的不是一点儿半点儿。你想想对创作者来说意味着什么?就是你可以疯狂试错,快速迭代你的想法,创作效率直接拉满。 当然了,最终好不好,还得是真人说了算。在一个真人玩家的评估里,你才怎么着?百分之九十二的情况下,玩家都更喜欢 warcraft 生成的场景。 百分之九十二这个数字真的太夸张了,基本上就是压倒性的胜利,说明它的质量是大家公认的。 所以呀,我们聊了半天,其实这不仅仅是一个很酷的新技术,它的背后是一个特别宏大的愿景, 就像研究人员在论文里写的那样,它是为了实现环境创造的民主。话说白了,就是要把我们一开始提到的那个技术门槛彻底推平,让创造的权力真正回到每一个有想法的人手里。 这项技术真的是为无数的创作者打开了一扇全新的大门。所以让我们畅想一下,当构建虚拟世界的门槛被降到这么低, 当唯一能限制我们的不再是技术,而是我们自己的想象力的时候,未来会有多少我们现在根本想象不到的故事,艺术和体验会因此而诞生呢?这个问题真的太让人期待了。


简单讲一下这个 python 除了康纳以外的几种这个虚拟环境怎么用?首先这个 python 三点三以后自带的这个虚拟环境,首先咱们先进入这个实体文件夹, 然后直接使用这个 python 三杠 m v n v 点 v n v 指定这个文件夹也叫 v n v, 这种是拍的三点三以后的版本都自带的一种形式。然后我再把这个多余的文件清了,然后去激活一下这个虚拟环境。 之后呢,直接在这个虚拟环境中只用 p i p in star plus, 嗯,可以看一下我这个系统本身它是没有 plus 的 系统, p i p 是 没有 plus 的 在虚拟环境中安装的,安装好以后咱们就可以尝试一下直接运行这个代码, 发现这个程序也是正常运行,并且可以呃成功的去请求。然后说一下这个 u v 的 方式, 使用这个 u v v e n v, 它就会自动的创建一下这个虚拟环境。之后呢还是需要使用这个激活虚拟环境的指令去激活一二虚拟环境 只用使用 u v p i p install 去安装一下依赖,然后可以看到这虚拟环境它已经自动的拉取到咱们需要这个依赖了, 然后也是直接可以使用 python 直接运行咱们的设计代码, 发现也是可以正常运行的。之后呃,演示最后一种就是创建一个 u v 项目,先切换到这个文件夹, 之后,呃,使用 u v in it, 并且存在着一个这个 py pro jack 的, 这里就会保存这个之前添加过的依赖,然后这里会增加这个 iso 版本的定义啊。然后现在就使用可以使用 u v i 的 去添加依赖,添加好依赖之后,呃也是可以呃,先激活虚拟环境, 之后使用 python, python 直接运行 之后呢?呃,咱们尝试把这个虚拟环境直接删除, 因为这一些依赖都已经被记录在这了,版本也被记录在这了。咱们可以使用 u, e, s, y, n, c 直接的去恢复一下之前的状态,然后再去运行, 发现也是能正常运行的。

这个视频来做一个课程的答疑,昨天晚上凌晨的时候呢,有一个课程的学员在微信小店的后台私信我,他提到就是在复现我们第一个企业规章制度案例的问答的这个知识库项目的时候呢, 碰到两个问题。具体来说,第一个就是他在安装依赖的时候呢,发现有一堆报错,然后他就手动的把对应的版本号给删除掉了,大家可以看到。然后其次的话就是他删除了版本号之后,依赖列表是完成了安装,但发现了主程序,然后做了一堆报错。那我看完这个报错内容之后呢,我给他写了两个回复。 第一个呢就是我虽然可以看到它使用了虚拟环境,但是它可能就是错误的把这个就是虚拟环境的这些依赖,然后安装到了这个系统的 python, 而不是虚拟环境里面啊,所以我给到了它两条指令,建议它这个创建一个全新的干净的虚拟环境。 关于主程序报错的问题的话,我也是这个视频想给大家这个核心澄清的,因为在廊桥的一点零呢,在二五年下半年呢,去做了重大的重构,尤其是它这个报错里面看到的 text chunk dy 这个脚本呢,等下我给大家看。 他第一行使用的是旧版的导入方式啊,那所以呢,就是他删除了版本号之后呢,这个 prp 安装的是最新的版本的包,所以导入失败。换句话来说呢,大家拿到的元旦码当中的这个依赖列表的当中的这个版本号,确实也是刻意锁定的,本来就是为了保证这个项目的可付现行,那为了更清楚的说明这个问题呢,我给大家在啊写了一个专门的文档啊,等下我也会上传到课程里面的这个对应的下载区域。 呃,我们这个其实是有八个脚本啊,我就不给大家注意打开看了。之前的话,这个版本纯购和依赖安装说明的话,和大家再去做一个快速的梳理。 接下来呢也是和大家一起在快速的回顾下浪欠做过的几个比较大的一些版本的迭代。那首先呢就是这个零点二点零这个版本开始他进行了大规模化的这种模块的存购, 就是把原来大一桶这种浪欠包拆成了多个独立的小包。我这里也做了一个,就是啊包拆分的对照表,大家可以看到啊,之前的话就是大一桶的一个,那后来比如说在零点二点零版本之后,然后拆分成了五个,那我可以举个例子,比如像这个像浪欠 community, 它就是一个第三方集成的这个包啊,然后里面包含了这个项链数据库啊和各种大模型这种提供商。 这里面还有更进一步的,像朗欠 open ai, 那 是专门 open ai 这个这个专用的,还有朗欠欧拉玛,欧拉玛专用的,那如果在零点二点零版本之后,还沿用上一版本的这样一个导入方式,那就会出现对应的报错。 那为什么需要包的切分呢?我这里也列出了一个表格啊,方便大家理解这个所谓的这种框架迭代的一些背后的考虑。那首先就是减小包的体积,那比如像我们刚提到的这个这两种这个拆分之后的包,一个朗欠 open ai 还是朗欠欧拉玛? 比如说如果你只用欧拉玛的这种用户,就不需要安装这个 open i 相关依赖,这肯定会节省很多空间。那还有就是依赖隔离啊,包括更新解偶,还有就是提升性能以及更清晰的一些架构,就是职责分离,代码更容易维护。 然后再接着就是当前一点零的发布,这一次呢,算是这个一次破坏性这种这个更新,然后这个社区里面最开始吐槽也比较多,我这里呢也整理了五个比较大的,我觉得大家可以参考一下这种这个变化。然后就是 python 的 版本要求啊,移除旧版导入啊,废弃 ipr 的 清理啊等等。 刚刚呢,算是对浪倩过去做的两次比较大的版本纯购做了一个简单的盘点。那对于我们这个项目的影响是啥呢?就是,呃,这个课程的学员朋友呢,就是他删除了版本号,那所以就是 p r p 之后他安装的就是最新的一点零版本啊,所以会有问题。那 具体来说为什么会报错呢?是因为 launch 一 点零啊,版本以上它已经完全移除了 launch and text splitter 的 这种模块,必须要从独立的包啊 launch and text splitter 导入,但我们这个提供的这个代码里面,它还是使用旧版的写法,那正确的解决方案的话,就是使用锁定版本的 requirements 点 tft。 那 当然呢,大家如果说想去升级的话,也可以参照这个说明来进行升级,它需要简单的修改下这个代码的导入。行, 这里我也做了一些稍微的延展,就是这种所谓的看似破坏性很大的程度呢,其实在开源项目里面还挺常见的。呃,这里列出了四个大家可能这个见的比较多的这个开源项目,像 pandas test, flew, skit, learn 和 fast i p i。 比如像 pandas 啊,这个大家可能会有概念点,像二点零版本,它移除了大量的这种 depreciation 的 这种警告 i p r 的 清理, 然后那相对于项目维护者来讲,它其实是个权衡。那好处就是这个我就不注意念了,就是更精细的架构代码,更容易维护,但确确实实有点像这个买车一样啊,就是这个降价它可能会有点背刺,但这个确实是我们所谓的叫技术债清理的必经之路啊,长期来看对整个种开源生态它肯定是有益的。 那给大家一个建议是什么呢?就是还是刚提到的就使用虚拟环境加锁定版本,不推荐就说直接在这个系统里面拍摄,直接安装。关于为什么要锁定版本呢?其实还是那句话,就是保证可付现金,然后降低学习成本。整个视频这个录制过程当中,我也一直反复在传达一个观点,就是希望大家就是尤其对于新手朋友而言,是要专注于核心的概念,而不是在于这个调试的环境, 然后安装依赖。里面有常见的问题啊,这里我有这个说明啊。然后我们整个十五个案例的话,是帮大家在理解核心概念的基础之上,然后掌握整个核心的一些工程思路,然后包括再去拿身边的一些真实的一些场景和项目,再去做一些扩展的一些 开发。 ok, 好, 那这个视频呢?我们就讲到这里,大家的话就是如果需要对第一个项目再去做一些附件,或者说要看这个文档的话,在我们这个第一个课程视频下放到下载区域,然后进行下载就可以。好,这个视频就到这里,大家下个视频见。

嗨,欢迎回来,那开始本节课程之前呢,希望你先来到课程的简介或者评论置顶,找到本节的资料下载下来,因为我们需要根据本节的资料呢进行引入,那么本节呢,我们用到的这个资料是一个很简单的项目啊,这个项目呢,我配置好了所有的东西, 只需要各位编辑测试就可以了,可以看到这里的 vtest 的 配置,还有这里的 t s config, 甚至这里的路径别名,这里写,我都是写好了的,各位只需要做的事情呢,就是测试我们的这样一个 app t s x 的 组建,这个组建呢非常的简单,我们来运行看一下, 它只是展示这样一个按钮,我们这个按钮点击之后呢就会变为红色,那我们要测试呢,就是在测试环境中模拟用户,点击之后呢就会变为红色,听着很简单,对吧,所以呢, 希望各位用自己的方式来尝试写一下该怎样完成本节的这样一个测试。那么接下来呢,我就带各位看一下这个测试到底有怎样的一些问题。首先我们导入需要用的东西, 然后呢这里我只有一个测试,所以呢我就不写 describe 了,我直接写 it issue, display, correct, color, auto, user, click。 首先是渲染 我们的 app, 然后呢是查找我们的 button, 这样一个组建应该是元素啊,然后设置我们的 user, 为我们后面的这个交互做准备。这里我们写上这个三 a 的 操作步骤,下面就是 act, 然后这里是用户点击,注意要写上我们的 await, 那 整个函数呢,都要变成 a sync。 那 最后就是 assert, 那 assert 的 部分该怎么做呢啊?这里 我们要实现的应该是判断一个元素它的样式是否生效,对吧?那我们目前用到的这个 test library 中给我们提供的匹配器,它其中有哪个匹配器能够完成这一点呢?我们可以先看一下文档,来到 existent, 找到 just don't, 找到它的 git, 我 们直接搜索 style, 这里呢,有简单的说明,其实就是告诉我们,它就是用来匹配这样一个 c s s 属性它的值的。但是呢,各位要注意,它只是匹配 c s s 属性的值,它并不是真正的去查看这样一个元素它的样式的,它只是查看这个属性的值。但是呢,真正这个属性的值 作用在这个元素上到底是什么样子,它是一点都不关心的,这里各位一定要注意。所以呢,看起来 do have style 这个东西能够判断我们的样式,但实际上呢,我非常不推荐各位去使用它, 尤其是在颜色这样一种对于样式表现上比较重要的这样一一种 c s s 属性上,我是非常不兑现。各位用 to have style 的 来都来了,我先带各位简单看一下这个 to have style 该怎么用。 to have style, 那 么看一下它该接收的参数是什么呢?这里呢,它有非常多不同的这样一些类型,可以是字母串,可以是对象,那这里呢,我推荐各位用对象的方式来实现,这里刚好就有我们所需要的 back ground color, 那 我们这个组建它所引入的样式呢,就是设置了 background color, 所以呢,我们测试这个 background color 为这样一个十六英寸的值就可以了。回到测试,我们写上了一个对象, background color, 那 这里呢,一定要注意啊,在颜色的判断过程中呢,我们需要给这样一个颜色一个简单的标准,因为你光是写这样一个十六英寸的话,它只有在我们的 css 这样一个文件中它能够识别出来,但如果在其他的文件中,你单写这样一个颜色代码,它是识别不出来的,你要给他一个简单的 颜色处理的标准,那这个标准是什么呢?啊?这个石榴金制的标准的话就是 hexadecimal, 然后后面写上颜色代码,这样就可以了,注意后面有这个括号,当然除了石榴金制,还有这个 rgb。 我 们来看一下我们的测试, test, ok, 运行正常,那说明我们这样一个通过十六帧制颜色代码,配合我们的 to have style 进行测试的这样一个结果呢,是正确的。但是呢,各位不知道好不好奇,我们当前这样一个元素,它的颜 色真的变成了我们所指定的这样一个红色吗?这里该怎么查找呢?啊?其实要获取一个元素真正的颜色很简单, 我们用浏览器自带的这样一个 windows 对 象,它有一个函数叫做 get computed style, 我 们就可以获取一个元素中所有的这样一些样式,然后呢,我们可以获取它其中的一个样式,叫做 background color, 获取到我们的 background color 之后,我们把它打印一下, 所有的打印的内容呢,都会出现在我们的 vtest 它的 console 这一栏,我们来看一下,可以看到它打印出来的内容其实是 r, g, b, a 四个零,那很明显我们应该是红色,那第一栏这个代表红色这样一个数字,它不应该为零才对。那么很明显,在我们的 juston 这样一个虚拟的 浏览器环境中,它所渲染出来的这样一些元素,它是没有颜色处理的。那这里可能会有人会问,这里为什么是 rgb a 而不是 rgb 呢? rgb a 是 从 c s s class module level four 开始实现了一个新的规范,它在 rgb 的 基础上呢,多加了一个 alpha 通道,最后这样一个 alpha 通道,它的参数呢,就代表这样一个元素它的透明度。那前面就是传统的 rgb 三色就是红、绿、蓝,对吧?那后面这个就代表它的 透明度。其实呢,如果我们的元素它没有透明度,比如全透明或者说不透明的情况下,你用 rgb 和用 rgb a 其实是没有什么区别的。后面的这个值可能就是为零或者是为一。那么很明显,我们当年这样一个元素,它的颜色在 这样一个模拟的浏览器环境中,它是没有办法展示出来的,那我们也没办法正常的测试,那为什么刚才这个测试通过了呢?为什么我们这里这这个 r 四段言它通过了呢?啊?其实就是刚才我给各位强调的,我们刚才使用的这个 to have style 这样一个匹配器,它只能够匹配 具体的 css 属性的值,它并不能够真正的去判断一个元素它所应用得到的这样一些真正的样式,一个是属性的值,一个是真正作用在上面的样式,这是两个截然不同的东西,但我们要测试的很明显,应该是真正作用在它上面的样式。所以呢,此时如果我们把这样一个 测试的逻辑改一下,我们不用 to have style, 我 们直接判断 background color to b。 这里记住,我们要用 rgb 值的话,和刚才应该是一样的,对吧?先直接给它这样复制过来, 然后改为 rgb, ok, 此时呢,我们再看一下我们的测试结果。来到报告可以看到这里就完全不一样,我们接收到的值呢,是 rgb 四个零,但实际上我们应该得到的应该是这样 一些有意义有价值的数字才对。这里我们就算打上这个逗号,其实也是没什么影响的,可以看到依然是不匹配了。那么问起来了,为什么我们的 模拟的这样一个浏览器环境,它没有办法处理颜色呢?为什么所有的元素它的颜色看起来都这么不正常呢?只是单纯的把这样一些 css 的 值给它附在了上面,但是呢,好像它的颜色并没有被 添加上去,对吧?这里其实就说来话长了,这里呢,我们可以来到 jesson 它的这样一个 pro request 这样一个请求中。这是二零一九年 十月份,有位哥们尝试给 jesson 添加的一个新功能,而这个新功能呢,它就尝试在 jesson 中为元素实现这样一些样式的应用。但是呢,可以看到这样一个 pro request 请求,它是没有被添加进去的,就算 到现在都已经过了六年了,到现在倒也没有被添加进去,那为什么呢?如果你有兴趣的话,可以去简单看一下他们接下来的这样一些对话。其实主要的 问题呢,还是围绕在这个性能上,因为要处理这样一些虚拟浏览器环境下的 css 样式的实现的话,在 js 中就需要逐级地对这样一些元素进行扫描,那么 所消耗的这个时间复杂度是非常的夸张的,会造成一些性能上的问题,所以呢,它的这个功能呢,至今都没有被添加进去,那就意味着我们的 jsdom 它至今都没有给我们的元素在虚拟浏览器环境中应用样式的这样一个功能。那我这就解释了,为什么我们今天 使用基于 jsdom 这样一个环境来进行元素测试的时候呢,我们获取到的真实的元素中间的这样一个颜色,它是 全部为零的,也就是根本没有应用任何的颜色,对吧?这样看来,好像我们的 jesson 配合 v test, 再配合 testing library 这样一套测试流程,在进行颜色测试的时候就完全失效了,有没有什么方法能够补救呢?啊?这里呢, 很明确的告诉各位啊,除非 just 它能够实现完整的这样一套 c s s 的 样式系统之外,没有任何补救的方法,我们要做的就是抛弃这样一套系统,学习另外一套新的系统。我想在整个 v t s 的 这个教程的第二部分 交给大家的 v t s 的 它关于在真实浏览器中测试元素的这样一个能力,这就是我们整个课程的第二部分 v t s 的 浏览器模式。那么具体浏览器模式该怎么开启,该怎么使用?该怎么 解决这个问题呢?我们就聊到下一集再讲。那么以上就是本期视频的所有内容,希望你能关注或订阅我的频道,感谢你的观看,我们下期视频再见!

接下来和大家讲一下我们使用 v s q 的 进行代码编辑。呃,目前来说呢用的比较多的两款开发工具,呃,一个是 v s q 的, 就是这个啊,那么还有一类呢是 这个 pi 欠儿,呃, pi 欠儿的好处呢,就是扩展多,使用方便,缺点就是体积大,耗内存,而且, 呃,使用它的完整版,使用它的企业开发版的话是需要付费的, vsco 的 话呢,它就相对来说比较轻,量级比较小,而且呢,呃它还没有那么多啊,收费的问题啊,所以说我们一般来说都是用它啊。 呃,那么我们接下来呢就是下载安装,然后接下来是安装扩展最后一个,接下来第三个呢就是创建一个项目,创建项目之后呢创建虚拟环境,最后一个呢是进行测试 啊,是进行测试。呃,我们呢还是在虚拟虚拟机里面给他测试,因为我本机呢都已经做好了,本机的环境都已经做好了,我带大家在训我,就大家可以跟着我在虚拟机上面的操作,在你自己的主机上面去操作。好吧,好,那我 先在虚拟机上面还原一下啊。 好,然后再启动, 启动好之后呢我们使用远程连接这台虚拟主机。 好,这会已经启动了,启动好之后我使用远程远程桌面连接好,然后这台主机的 ip 地址是幺三八啊,点连接。这样子呢,我们就进入到 虚拟的这个 windows 系统,大家可以跟着我在虚拟的 windows 系统上面操作。 好,那么首先看一下我在这边是没有这个 vs 酷狗的啊,同时呢这边也是安装了这个 python 环境啊。 好,然后呢我们把一开始安装看一下我装过哪些模块,我都给它卸载掉啊。 p i p n s。 看一下我们装过哪些模块?我记得就两个模块,一个是 mateplot library, 还一个是 open open py 叉 l, 还有一个是这个 panda, 对 吧?我给它下载掉啊。 p i p 然后直接是昂尼斯多,然后 panda 啊,然后杠歪一下,这样直接给它卸载掉。 嗯?还这么快的吗?然后呢,再把这个 open py 叉 l 咱们也给它卸载掉, 然后还有一个是 mate pluto library, 好, 看一下还剩哪些哦?我们都可以把它卸载掉 list 啊,你看一下它还有这么多啊,我们都可以一个个给它卸载掉啊,但我现在不卸载掉,留在这也行,对吧?主要是告诉大家我们既可以通过 install 去加载模块,也可以使用 on install 呢去卸载模块。 呃,那么接下来我们首先第一步呢,是要打开浏览器去下载我们的 vs code, 打开浏览器,然后嘞,呃,在笔记上面把它的这个官网地址给它复制下来啊,在笔记上面哎,我的这个 在我的笔记上面把它的这个地址给它复制下来啊。 呃,大家注意啊,就用这个地址。然后现在有一些网站呢是比较没有无良讨嫌,他让你下载了之后发现要收费,那如果说发现有收费的呢,肯定是遇到盗版的了啊,那自己小心一下, 好,把它复制粘贴好。到这个网站之后呢,你直接就点下载就行了啊,直接点下载就可以了。 好,然后现在呢就正在下载了对吧?正在下载了。这个体积也比较小是吧?体积也比较小,直接就可以了。 好,打开目录打开目录之后呢,我就可以直接啊回车安装了啊,回车安装了。 好,在这里的话呢,我们要选择一下,就是我同意还是不同意, 然后直接点下一步,再下一步,下一步,下一步再点安装 好,这边点完成,然后你会看到上面还有个选项叫什么任行啊,维修啊,维修是六六 酷的 vs 酷的,那么你可以把它勾选,取消勾选,取消勾选呢,它就不任行啊,那你到时候呢,就在开始菜单这边就已经安装好了,再开始菜单,这就有了,对吧?那我现在直接点完成啊,直接在这边点完成,点完成之后呢,它会自动自自己打开它。 好,这就安装成功了啊,在开始菜单呢,你下次再开始菜单在这里就可以打开了,然后你也可以直接在单右键把这个呢固定到我的这个磁贴这来,以后呢,直接打开开始菜单,就在这可以选中它了,就不用去搜索了。 好,然后装好了之后呢,还得装些基础的拓展,因为说我这边全部都是中文的,全部都英文,对吧? 有些同学呢,觉得英文实在是太过分了,对吧?那我就变一个中文吧,变一个中文吧,那我们在这儿这边说个拓展呢,是 extens, extens 是 扩拓展继承的意思啊,我们直接在这儿找拓展啊,首先呢变一个中文的 chalice, 对 吧? chalice 搜索一下啊,那如果说你没有网络的话是不行的,你得有网络, 这个就已经装好了,装好了之后呢,这边就提示你是不是想修改这个语言,对吧?那我直接点这点它了,就是关闭了之后重启,这时候所有的英文就变中文了,你看一下,对吧?妥了吧? 好, ok, 设好了之后呢,我们就可以创建一个项目了啊,创建项目的方法就很简单,就直接是打开一个木文件夹啊,就相当于创建一个项目了,对吧?那我直接打开文件夹 啊,这个时候呢,我们就直接在文档里面去打开了啊,在文档里面去打开了啊,在哪里嘞? 搜索我看一下啊,有文档啊,直接在文档里面打开,找到文档,然后单右键去新建一个。 新建一个文件夹,这个文件名字呢?就叫 python 啊,下划线 work, 这名字可以随便起啊,不一定跟我一样,对吧? space work, space。 好, 然后呢,我们直接选择 好,在这我直接拿鼠标点吧。好, ok, 那 这个时候他就会提示,由于担心他一不小心运行了这个目录里头的还有病毒的文件,所以说他提示我是不是要信任这个作者啊?这个文件目录本来就是我刚创建的,所以说我肯定是信任的,对吧?一般来说也是信任的。 好,接下来的话呢,我们就可以呃创建这个文件了,当然这之前的话呢,我还要装建一个插件。装建一个扩展啊,装个什么扩展呢?就是 python 的 一个扩展,因为我们编辑要 python 的 一些扩展,比如说 python 的 语法检查呀, python 的 这个,呃,运行的这个输出内容啊等等,对吧?这个怎么 money 好,直接就装第一个啊,直接装第一个好,同时装第一个的时候呢,他依赖第二个,第三个,第四个他也一块装了,所以说你直接装第一个啊, 这个需要点时间。装完了,装完了之后呢,我们把它关闭了之后重新打开,这个需要点时间啊, 这就安装。 你看这第第一个是 python 的 语言啊,然后第二,你像这这边是什么?这是它的环境,对吧?啊?然后,呃,这这这个是它的第八个,对吧?输出这个是它的这个环境,你看这就一次性都搞定了,搞定之后的话,咱记住关掉了之后再打开啊。 好嘞,关掉之后再打开,哎,然后现在就有了这样一个, 然后我们就可以开始做了。接下来嘞,我们有了这个项目之后,我的项目就需要有一些这个模块儿,例如像这个,呃,管理 excel 的 模块儿,叉 l i d 啊,或者是 open p y 叉 l 啊,比如说我们自己经常用的 open p y 叉 l, 对 吧? 那我就可以直接新建这样一个文件了,那就新建文件,新建文件。呃,新建文件,你就说我在这儿做一个这个啊,你就说我这儿做一个 tes, 七零零幺 零零幺二点 p y。 好, 这样一个 python 文件, python 文件的话,我要管你一个什么呢?我要管你一个,我要管你 excel。 那 我是不是得引入一个模块儿? 引入什么模块了?你比如说 open 啊 p y 叉 l, 呃,但是我引入它之后,你会发现我其实是没有这个模块的啊,我其实是没有这模块的,那我就需要怎么办呢?啊?我们就需要打开中单啊,在这个查看这边打开这个中单, 打开中单啊,再点一下,又打开了,好,打开中单之后,你会发现这个中单的话呢,它是 power shell 的 中单, 那我想用的是这个 cmd 的 中单,所以说我再重新打开个新的叫 cmd 的 中单,咱们把 power shell 的 中单呢给它关掉。好, 那这个时候有一种说,老师,我现在是不是就直接 p i p store 呃,这个 open 叉 l, 呃, p y 叉 l 可不可以呢?是可以的, 但是呢,我们,嗯一个项目啊,都通常使用一个虚拟的编程环境,而不是说直接呃调用这个公共环境里面所装的模块, 因为不同的项目它使用的模块的版本是不同的,所以说我们尽量是把它呃分在不同的虚拟环境里头去。所以说我现在呢要创建一个新的虚拟环境, python 上 m 调用 v e n v 这个模块,这个模块是标准模块,不用下载的。 然后呢创建一个点 v e n v 这一个模块,创这样一个虚拟环境,这个虚拟环境名字呢就叫点 v e n v e n v。 好, ok, 它就这个操作呢,就会在我们当前的这个目录里头, 在我们当前这个目录,呃,当前这个目录里面创建一个点 v e n v 的 这样一个目录。好,创建好了之后,我激活 激活这个目录,咱们用哪个方法呢?就用到它这个 v e n v 你 们的斯科瑞普里头的这个 act 五点 b a t, 那 我怎么激活呢?呃,首先我们这 cd 到 v e n v 啊,下面的斯科瑞普特斯,然后在这下面直接是 act 五 眼 p a t。 好, 这样子就激活了,激活了之后 p i p 意思的看一下,你会发现现在的话呢,呃,我们当前这个虚拟环境里面就只有这个,这个虚拟环境就非常干净,对吧?就不会有其他乱七八糟的一些模块 好,然后我再装的时候就好多了。 p i p, 因此多啊,哪一个呢?我说就是 open。 嗯, py 叉 l。 啊。这个时候我们在之前已经配置了这个阿里云的镜像了,对不对?好,现在就可以了。现在好了之后呢,我们发现这个上面的下面的波浪线是不是也丢失了? 哎,这个波浪线也丢失了啊,然后呢?呃,就波浪线也消失了,说明我已经安装好这个模块了,对吧?呃,接下来的话,我们创建一个项目去测试一下它啊。创建一个,在这个项目里头去测试它, 这个项目里头去测试它啊。装好了,装好了之后我们也进入了虚拟环境,进入虚拟环境之后,我先写一个项目去测试它啊,直接就叫 tst tst 零零一吧, 继承 object, 然后呢,写一个抽象函数, 这里边不写。然后呢,我实现了什么功能呢?就是创建一个工作簿,然后向工作簿的第一个表里面写一点数据,好吧。呃,这个呢,就叫 create book and and write date。 好, 括号,这里面呢,写个 self 好, 然后创建。怎么唱呢?直接是 w b 等于 open t y x l 点 work book, 这就创建好了,在 list 里面创建好了好,然后呢,再获得它的第一个工作表。 s h 等于 w b, 括号 w b 点 c c 内斯的第一个。这是根据名称获得的啊, 有他所有的工作表名称的第一个,这就获得他的第一个工作表了。然后在第一个工作表的第 a 一 单元格写个字, 等于 a, b, c, 然后呢,在他的 b 二单元格 e, f, g。 好, 然后咱把这个表嘞,把它存一下 c 五, 嗯,存到 t s t 零零一点叉 l x x。 好, 然后你会发现这边是不是有一个一,这个一表示什么意思?表示我有一个文件没有保存啊,所以说我要把它保存一下啊, 我把它保存,一般来说我设置自动保存,对吧?自动保存,那现在我这边是不是没有这个一了?大家注意啊,有些同学写完了之后说,老师我运行怎么运行不了,就是因为这边是没保存好,这个写完了之后我们还要写一段啊,这个就是调用 等,等于没打冒号。然后呢,在这直接调用我们的 tst 零零一点 create 啊,调用这个函数 啊,那么它达到的效果呢?就是创建好一个叫 t s t t 零一点 x l x 的 这样一个表格。然后呢,第二步呢,是在这个表格的第一个表里面,在 a 一 单元格里面写上 abc, 然后 b 二单元格里面写上 e, f, g。 好, 我们任性一下,直接在我们的中单字输入 percent, 然后杠,呃,这个任性一下, 呃, python tst 零零啊,这个不在这个目录里头啊,回到上一级目录,好,现在呢,就回到了这个我的项目目录,然后我们 python tst 零零一 好运行完了,运行完了之后,大家会发现这边是不是多了一个 excel 表格,但是我们点击之后,你会发现这个文件呢,打不开,无法识别,那怎么办呢?我再装一个插件吧,装个插件之后它就认识了。嗯,装一个 excel 插件 啊,叫 excel 应用插件,这样子的话我就不用去。呃, 我就不用去专门去打开这个 excel 表格了啊,直接在我的 vs 库的一体化就可以打开了,就去检查一下,看里面到底有哪些数据嘛,对吧?好的,现在再点一下, 再点一下你就发现,对吧?这是 abc 吧?这是 e f g 吧?那数据是不是就写进去了?数据是不是就写进去了啊?这个就是我们的啊, vscu 的 一个基础的案例啊,以及它的这个虚拟环境的创建,以及呢?它的这个插件的安装好了。