网站友情链接与排名,网上商城html模板,网站开发后端技术,重庆公司网站制作L0——入门岛
Python基础
Conda虚拟环境
虚拟环境是Python开发中不可或缺的一部分#xff0c;它允许你在不同的项目中使用不同版本的库#xff0c;避免依赖冲突。Conda是一个强大的包管理器和环境管理器。
创建新环境
首先#xff0c;确保你已经安装了Anaconda或Minico…L0——入门岛
Python基础
Conda虚拟环境
虚拟环境是Python开发中不可或缺的一部分它允许你在不同的项目中使用不同版本的库避免依赖冲突。Conda是一个强大的包管理器和环境管理器。
创建新环境
首先确保你已经安装了Anaconda或Miniconda推荐使用Miniconda。创建虚拟环境时我们主要需要设置两个参数一是虚拟环境的名字二是python的版本。
conda create --name myenv python3.10这将创建一个名为myenv的新环境使用Python 3.10。 执行后会在下方提示我们同时需要安装的第三方依赖库。
在安装包时会有一步二次确认填y后第三方库将开始下载。
环境管理
查看安装的虚拟环境 激活环境
要使用创建好的虚拟环境我们需要先激活环境。激活我们刚刚创建的myenv环境的命令如下
conda activate myenv执行后在命令行的最前边可以看到相应的变化。
如果要退出环境回到默认环境命令为
conda deactivate又回到了base环境。 其他常见的虚拟环境管理命令还有
#查看当前环境中安装了的所有包
conda list
#删除环境比如要删除myenv
conda env remove myenv安装虚拟环境到指定目录
有时我们会遇到想将整个虚拟环境保存到指定目录来共享比如在局域网内或者在InternStudio的团队开发机间共享。此时我们可以把conda的虚拟环境创建到指定目录下。
只需要在创建环境时使用–prefix参数制定环境所在的文件夹即可比如我们想在/root/envs/路径下创建刚刚我们创建过的myenv。
conda create --prefix /root/envs/myenv python3.12其他操作就与直接在默认路径下创建新环境没有区别了。想要激活保存在指定目录下的conda虚拟环境也十分简单直接将环境名替换成所在文件夹就行。
conda activate /root/envs/myenvmyenv这个文件夹里包含了整个虚拟环境所以理论上将他直接拷贝到任意一台安装了conda的机器上都能直接激活使用这也是在内网机器上做环境配置的一种效率较高的解决方案。
使用pip安装Python三方依赖包
在Python开发中安装和管理第三方包是日常任务。pip是Python官方的包管理工具全称为“Python Package Installer”用于方便地安装、升级和管理Python包。
使用pip安装包
注意在使用conda的时候我们需要先激活我们要用的虚拟环境再在激活的虚拟环境中使用pip来安装包。pip安装包的命令为pip install。
pip install somepackage # 安装单个包somepackage替换成你要安装的包名
pip install pandas numpy # 安装多个包如panda和numpy中间使用空格分隔
pip install numpy2.0 # 指定版本安装
pip install numpy1.19,2.0 # 使用版本范围安装安装requirement.txt
如果你有一个包含所有依赖信息的 requirements.txt 文件可以使用 -r 一次性安装所有依赖。requirements.txt 在各种开源代码中经常可以看到里面描述了运行该代码所需要的包和对应版本。
pip install -r requirements.txt比如以下就是我们接下来会接触到的LLM部署框架 lmdeploy 的 requirements.txt 的一部分。
accelerate0.29.3
mmengine-lite
numpy2.0.0
openai
peft0.11.1
transformers
triton2.1.0,2.3.1;安装到指定目录
我们在使用pip的时候可以使用–target或-t参数来指定安装目录此时pip会将你需要安装的包安装到你指定的目录下。
这里我们用本次实战营最常用的环境/root/share/pre_envs/pytorch2.1.2cu12.1来举例。
# 首先激活环境
conda activate /root/share/pre_envs/pytorch2.1.2cu12.1# 创建一个目录/root/myenvs并将包安装到这个目录下
mkdir -p /root/myenvs
pip install somepackage --target /root/myenvs# 注意这里也可以使用-r来安装requirements.txt
pip install -r requirements.txt --target /root/myenvs要使用安装在指定目录的python包可以在python脚本开头临时动态地将该路径加入python环境变量中去
import sys # 你要添加的目录路径
your_directory /root/myenvs # 检查该目录是否已经在 sys.path 中
if your_directory not in sys.path: # 将目录添加到 sys.path sys.path.append(your_directory) # 现在你可以直接导入该目录中的模块了
# 例如import your_module使用本地Vscode连接InternStudio开发机
使用SSH连接开发机
使用第一关在vs code中配置远程执行机的SSH连接进入到执行机时需要再次输入ssh连接的密码。 连接成功后我们打开远程连接的vscode的extensions在远程开发机(SSH:SSH.INTERN-AI.ORG.CN) 上安装好python的插件后面python debug会用到。也可以一键把我们本地vscode的插件安装到开发机上。 Python 和下边的 Python Debugger 将被同时安装。
在vscode中选择conda虚拟环境
当我们新建完一个python文件后需要在右下角单击选择我们的python解释器才能运行。 这边我们会看到当前本机上已经安装好的所有python解释器直接选择上一步中创建的环境中的解释器就行。 选择后界面右下角即显示为当前使用的解释器。
如何在Vscode中打开终端
可以有两种常用的方法打开终端
单击VSCode页面底部状态栏中的“终端”图标可以快速打开VSCode的终端面板。
使用快捷键Ctrl也可以快速打开VSCode的终端面板。
TIPS终端面板右上方的可以新建一个终端窗口。
使用vscode连接开发机进行python debug
什么是debug
当你刚开始学习Python编程时可能会遇到代码不按预期运行的情况。这时你就需要用到“debug”了。简单来说“debug”就是能再程序中设置中断点并支持一行一行地运行代码观测程序中变量的变化然后找出并修正代码中的错误。而VSCode提供了一个非常方便的debug工具可以帮助你更容易地找到和修复错误。
使用Vscode进行Python debug的流程
debug单个python文件
新建一个python文件并放入以下内容。
def range_sum(start,end):sum_res 0for i in range(start,end):sum_resireturn sum_resif __name__ __main__:print(range_sum(1,10))打开Python文件点击“运行和调试”图标。
首次debug需要配置选择python debugger后选择“debug Python File”。
设置断点
在代码行号旁边点击可以添加一个红点这就是断点如果不能添加红点需要检查一下Python扩展是否已经正确安装。当代码运行到这里时它会停下来这样你就可以检查变量的值、执行步骤等。接下来我们在第4行的核心代码处打上断点。
启动debug
点击VSCode侧边栏的“Run and Debug”运行和调试选择调试配置后点击按钮或者按F5键。
查看变量
当代码在断点处停下来时你可以查看和修改变量的值。在“Run and Debug”侧边栏的“Variables”变量部分你可以看到当前作用域内的所有变量及其值。
单步执行代码
你可以使用顶部的debug面板的按钮来单步执行代码。这样你可以逐行运行代码并查看每行代码执行后的效果。 debug面板各按钮功能介绍
continue: 继续运行到下一个断点。
step over: 单步跳过可以理解为运行当前行代码不进入具体的函数或者方法。
step into: 单步进入。如果当前行代码存在函数调用则进入该函数内部。如果当前行代码没有函数调用则等价于step over。
step out: 单步退出函数返回到调用该函数的上一层代码。
restart: 重新启动调试。
stop: 终止调试。修复错误并重新运行
如果你找到了代码中的错误可以修复它然后重新运行debug来确保问题已经被解决。
通过遵循以上步骤你可以使用VSCode的debug功能来更容易地找到和修复你Python代码中的错误。可以自己编写一个简单的python脚本并尝试使用debug来更好的理解代码的运行逻辑。记住debug是编程中非常重要的一部分所以不要怕花时间在这上面。随着时间的推移你会变得越来越擅长它
不同的断点
在调试Debug过程中断点Breakpoint允许程序员在程序的执行流程中设置暂停点。当程序运行到这些断点时执行会暂时中断使得我们可以检查此时程序的状态包括变量的值、内存的内容等。断点为我们提供了一个观察程序运行细节的机会从而帮助我们定位和解决程序中的错误或问题。在VSCode中我们还可以设置条件断点这样断点只有在满足特定条件时才会触发。
普通断点在代码行号左侧点击添加断点。条件断点在断点标记上右键选择条件断点conditional breakpoint。VSCode 中常用的条件断点主要有三种类型表达式Expression输入一个 Python 表达式每次触发断点时运行该表达式当表达式的值为 True 时 VS Code 会暂停执行。例如x 10触发计数Hit Count断点触发计数达到输入值时才会暂停运行。记录日志Log Message触发该断点时在 Debug Console 中输出指定信息实际上就是 logpoint。需要输入要输出的信息如果要用到表达式可以使用 {} 将表达式括起来。例如每次记录变量 i 的值可以写 x{i}。
表达式条件断点 比如我们想让代码在 iend-1 时停下来可以这样设置 在断点处右键选择“条件断点”然后输入条件 i end-1。
Python调用InternLM api
如何获取api key
前往书生浦语的API文档, (https://internlm.intern-ai.org.cn/api/tokens) 登陆后点击API tokens。 然后创建一个新的api token。
这里一定要注意浦语的token只有刚创建的时候才能看到全文后续没法再查看已经创建好的token如果忘记需要重新创建所以创建完了以后记得先复制保存到本地。
如何使用InternLM api
我们可以使用openai python sdk来调用InternLM api。注意在配置api key时更推荐使用环境变量来配置以避免token泄露。
#./internlm_test.py
from openai import OpenAI
import os
def internlm_gen(prompt,client):LLM生成函数Param prompt: prompt stringParam client: OpenAI client response client.chat.completions.create(modelinternlm2.5-latest,messages[{role: user, content: prompt},],streamFalse)return response.choices[0].message.contentapi_key os.getenv(api_key)
#api_key #也可以明文写在代码内不推荐
client OpenAI(base_urlhttps://internlm-chat.intern-ai.org.cn/puyu/api/v1/,api_keyapi_key)
prompt 你好你是谁
response internlm_gen(prompt,client)
print(response)我们可以在终端中临时将token加入变量此时该环境变量只在当前终端内有效。所以该种方法需要我们在该终端中运行我们的py脚本。
export api_key填入你的api token
python internlm_test.py若是想永久加入环境变量可以对 ~/.bashrc 文件中添加以下命令。
export api_key填入你的api token保存后记得source ~/.bashrc。
运行效果如下
闯关任务
Leetcode 383
class Solution:def canConstruct(self, ransomNote: str, magazine: str) - bool:counts {}for c in magazine:counts[c] counts.get(c,0) 1for c in ransomNote:if c not in counts or counts[c] 0:return Falsecounts[c] - 1return TrueVscode连接InternStudio debug笔记
在环境变量中配置 api_key 后并在代码中配置从os中获取。 首次运行代码时会报错通过debug可以发现 res 字段返回的内容并不全是json结构需要进行一次提取。这里使用了正则表达式。
pip安装到指定目录
通过pip安装 numpy 到指定目录下 新建python文件并将numpy所在目录在文件最上边进行添加下边就可以正常引用numpy库了效果如下。