首页
免费后端云服务
关于
Search
1
小程序后端入门系列视频教程【一-微信开发工具介绍】
9,812 阅读
2
微信小程序三级联动之多列选择器
9,710 阅读
3
小程序开发免费后端之神秘利器分享
9,632 阅读
4
Golang-开发企业级资源权限管理【第一步表设计】-1
9,174 阅读
5
学会微信服务端开发第一步
9,049 阅读
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
登录
Search
Typecho
累计撰写
124
篇文章
累计收到
22
条评论
首页
栏目
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
页面
免费后端云服务
关于
搜索到
12
篇与
的结果
2024-09-12
python 多版本安装pyenv,国内镜像解决版本安装不上问题
python 多版本,window,mac,liunx都有不同的工具,由于现在国内墙太厉害,连docker镜像,python官方,github都访问不到,导致安装实在困难,今天我记录下如何安装pyenv 是一个用于管理多个 Python 版本的工具。它允许你在同一台机器上安装和切换不同的 Python 版本,非常适合开发者在不同的项目中使用不同的 Python 版本。以下是 pyenv 的一些主要功能和使用方法:主要功能多版本管理:允许你在同一台机器上安装多个 Python 版本(如 Python 2.7、Python 3.6、Python 3.8 等)。可以在不同的项目中使用不同的 Python 版本。版本切换:可以轻松地在不同的 Python 版本之间切换,无需手动修改环境变量。隔离环境:每个项目可以有自己的 Python 版本,不会相互干扰。插件支持:支持插件扩展,如 pyenv-virtualenv,可以与 virtualenv 结合使用,创建和管理虚拟环境。正常来说即可在 Linux 上安装你可以使用以下命令安装 pyenv:curl https://pyenv.run | bash实际国内无法链接github原因,无法安装这时候只能去找一个pyenv压缩包,或者你浏览器可以墙的话,直接浏览器github下载例如安装python 3.12.2版本pyenv install 3.12.2 -v 实际是不成功的然后网上找export v=3.12.4; wget https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/; pyenv install $v 结果也是失败的,其他几个国产的镜像也测了,不行最终找到华为提供的这个可以export v=3.12.4; wget https://mirrors.huaweicloud.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/; pyenv install $v当然除了pyenv,也可以用其他版本管理工具,例如condaconda 是一个开源的包管理系统和环境管理系统,主要用于数据科学和机器学习领域。它可以管理多个 Python 版本和相关的依赖项。# 安装 Miniconda wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh # 创建新环境并指定 Python 版本 conda create -n myenv python=3.12 conda activate myenv
2024年09月12日
325 阅读
0 评论
0 点赞
2024-09-04
Serverless实战驾校小程序【考题练习】三
Serverless实战驾校小程序【考题练习】三介绍上一节我们讲了,实现了分类、题目显示、进度条显示等功能,这节我们继续完善答题功能。由于开发时间比较紧,这里主要写实习思路,与核心代码。这一节做顺序练习与模拟考试。都属于答题详细页面功能这次进度条可以根据答题进度,显示进度。 这个也用了iview的一个插件, 目前样式没调整, 这个后面再说。这一节主要实现了一些逻辑计算逻辑一:记录学习题目进度记录的核心代码,在提交保存的时候调用。当然,也可以在练习离开的时候触发,这里给了个按钮,点击保存即可保存学习记录const AddLearning = ({ num, result, type = 1 }) => { let current = wx.Bmob.User.current() return new Promise((resolve, reject) => { const query = wx.Bmob.Query('learning'); query.set('bSubjects', '1') query.set('bModels', '1') query.set('num', num) query.set('result', result) query.set('type', type) query.set('uid', current.objectId) query.save().then(res => { resolve(res) }).catch(err => { console.error(err) reject(err) }) }); }逻辑二:记录题目回答的对错上面的变量result记录,格式请看上一节数据库格式说明,是题目的对错。这里点击一个选择就记录一次,我在页面data里面增加了一个items变量来保存。选择答案执行以下代码,今天先实现单选,我们单选与多选,判断事件分开来做,这样便于逻辑管理// 单选题 handleFruitChange ({ detail = {}, target = {} }) { let questionInfo = this.data.questionInfo // 判断单选是否正确 if (target.dataset.id) { console.log('ok') questionInfo.isOk = 1 } this.setData({ questionInfo: questionInfo, current: detail.value }); // 单选自动跳到下一题 this.statistical() // 显示第几道题 this.setThisData(this.data.index) this.setData({ index: this.data.index + 1, current: '' }); },逻辑三:答题相关统计逻辑二讲了,记录对错,这里有一些统计需要拿出来计算,先做单选题,点击选择,判断是否正确, 如果正确,记录到结果对象 [{" id ":" XXX ', '0'}, {" id ":" XXX ", "1"}] ,0代表回答错误,1正确例如错题个数、对题个数,页面提示,进度条进一步statistical () { // 统计错题个数 let questionErr = this.data.questionErr //错题个数 let questionOk = this.data.questionOk //错题个数 let questionInfo = this.data.questionInfo let items = this.data.items let arr = { "id": questionInfo.objectId, "o": 0 } let t = 'error', m = '回答错误' if (questionInfo.isOk === 1) { // o 0代表失败,1代表成功 arr.o = 1 questionOk = questionOk + 1 t = 'success' m = '回答正确' } else { // 错误数+1 questionErr = questionErr + 1 } items.push(arr) // 提示 $Message({ content: m, type: t, duration: 2 }); //进度条 let totalW = this.data.index / this.data.total totalW = (totalW * 100).toFixed(2); totalW = totalW < 1 ? 1 : totalW this.setData({ items: items, questionErr: questionErr, questionOk: questionOk, totalW: totalW, }); },逻辑四:上一题下一题的实现页面显示第几个题目,我们用数组的下面来记录,单电机下一题,我们记录回答对错,并且数组下标+1// 翻页 handlePageChange ({ detail }) { const type = detail.type; const current = this.data.current if (current == "") { console.log('空') $Toast({ content: '请选择答案!', type: 'warning' }); return; } this.statistical() if (type === 'next') { this.setThisData(this.data.index) this.setData({ index: this.data.index + 1, current: '' }); } else if (type === 'prev') { this.setData({ index: this.data.index - 1, current: '' }); this.setThisData(this.data.index) } },逻辑五:引入模式概念因为答题页面逻辑非常多,今天写这么多也没写完一般, 除了学习模式,后面还有模拟考试模式,这里不单独使用另外的页面来开发,统一在一个页面。 所以,我们在页面data里加入model变量,代表模式。/** \* 这里有个模式, 练习模式,与模拟考试模式 \* model 1.练习模式 2.模拟考试考试 \* 练习模式查询出所有数据练习 \* 模拟考试 随机100题 计算打分 */ 总结今天练习模式里面的单项选择逻辑基本已经做好,明天将实现模拟考试,计算考试成绩等等功能
2024年09月04日
2,955 阅读
1 评论
46 点赞
1
2
3