• conda安装使用jupyterlab注意事项


    在这里插入图片描述

    一、conda安装

    Miniconda官网Miniconda官方文档

    1.1 conda安装

      从Miniconda官网下载安装了conda 23.5.2,python版本是 3.11.4,安装时勾选add PATH:
    在这里插入图片描述
    最终用户变量中的配置为:

    在这里插入图片描述

    1.2 常见命令

    下面是conda常用命令:

    conda包管理命令描述
    conda create --name myenv python=3.8创建名为myenv的虚拟环境,指定python版本为3.8
    conda activate myenv
    source activate myenv
    激活虚拟环境(windows)
    激活虚拟环境(macOS和Linux)
    conda install package_name在激活的虚拟环境中安装Python包
    conda list列出当前虚拟环境中已安装的包
    conda deactivate停用当前虚拟环境
    conda env export > environment.yml导出当前虚拟环境的配置到一个YAML文件
    conda env create -f environment.yml根据YAML文件创建虚拟环境
    conda remove --name myenv --all删除指定名称的虚拟环境及其所有包
    conda search package_name搜索可用于安装的包
    conda update --all升级当前虚拟环境中的所有包
    conda虚拟环境管理命令描述
    conda update conda升级conda本身
    conda config --show显示conda的配置信息
    conda env listconda info --envs列出所有已创建的虚拟环境
    conda info --all显示所有conda信息
    conda info --env显示当前虚拟环境的详细信息
    conda config --set auto_activate_base false禁用默认激活基础环境(默认情况下会自动激活基础环境)
    conda config --set auto_activate your_env_name设置your_env_name为默认的激活环境

      默认情况下,conda自动激活base环境为当前使用环境。如果要更改某个环境为默认激活环境,你需要进行一下操作:

    conda config --set auto_activate_base false				# 禁用默认激活基础环境
    conda config --set auto_activate your_env_name			# 设置your_env_name为默认的激活环境
    
    • 1
    • 2

    如果要恢复默认激活base环境,需要运行:

    conda config --set auto_activate_base true 				# 恢复默认激活base环境
    
    • 1

      首次使用conda config --set命令,会在用户文件夹下创建配置conda文件.condarc,set命令添加的配置信息会写入.condarc文件。使用conda info命令可以查看此配置文件地址:

    在这里插入图片描述

      conda默认安装源是Anaconda仓库:

    conda config --show-sources    # 显示当前配置的源
    conda config --backup          # 备份原始配置文件
    
    • 1
    • 2

    接下来,您可以使用以下命令设置国内的镜像源,这样下载速度更快:

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/  # 清华源
    conda config --add channels https://mirrors.aliyun.com/pypi/simple/					  # 阿里源
    
    • 1
    • 2

    或者直接在.condarc文件中写入:

    # 配置文件中,注释以#符号开头,且不能写行内注释,只能单独放一行
    channels:
      - defaults
    show_channel_urls: true
    default_channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
    custom_channels:
      conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

      上述配置文件中默认使用清华源进行安装,如果要使用别的安装源,可以使用-c选项显式指定其他渠道。

    # conda-forge是配置文件中的channel名称,package_name是安装包的名称
    conda install -c conda-forge package_name
    
    • 1
    • 2

      每个渠道都有自己的特定用途和软件包集合,您可以根据自己的需求选择使用其中的一个或多个渠道来安装相关的软件包。

    1. conda-forge:社区驱动的Conda渠道,覆盖了各种领域,包括科学计算、数据分析、机器学习、计算机视觉等。它包含了大量常用的软件包,并且更新频率较高。
    2. msys2:`如果您需要在Windows上构建和运行需要Unix/Linux工具的软件包,这个渠道可能会有用。
    3. biocondabioconda是一个专门用于生物信息学和生物数据分析的Conda渠道。
    4. menpomenpo渠道通常与Menpo项目相关,Menpo是一个计算机视觉和机器学习库。这个渠道包含了与Menpo项目相关的软件包和工具。
    5. pytorchpytorch渠道包含了与PyTorch深度学习框架相关的软件包和工具。
    6. simpleitksimpleitk渠道包含了与SimpleITK(简化的医学图像处理工具包)相关的软件包和工具。

    1.3 常见问题

    1. Anaconda powershell Promp报错
      打开Anaconda powershell Promp出现如下报错:
    无法将“E:\miniconda\Scripts\conda.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包
    括路径,请确保路径正确,然后再试一次。
    所在位置 C:\Users\LS\Documents\WindowsPowerShell\profile.ps1:4 字符: 4
    + (& "E:\miniconda\Scripts\conda.exe" "shell.powershell" "hook") | Out- ...
    +    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (E:\miniconda\Scripts\conda.exe:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这是因为之前安装的conda在PowerShell 配置文件 profile.ps1 中残留了相关配置信息(& "E:\miniconda\Scripts\conda.exe" "shell.powershell" "hook") | Out- ...,只需要将其改为:

    (& "D:\Miniconda\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | Invoke-Expression
    
    • 1

    之前安装在E盘,卸载之后没有清理powershell中的配置信息,现在改为D盘的安装目录就行

    1. 系统重装之后快捷方式失效
      在这里插入图片描述
      conda安装之后,会在开始菜单栏自动生成上面两个快捷启动方式,系统重装之后会失效。此时重新安装,会另外再生成一组,之前失效的删除就行
    2. 卸载问题
      conda安装启动之后,会在用户文件夹生成.conda文件夹和.condarc文件,如果要卸载conda,需要清理这些文件。

    二、jupyterlab

    2.1 jupyterlab安装和卸载

      使用conda install命令进行安装,jupyterlab最新只有3.6.3版本。所以直接使用pip install安装jupyterlab 4.0.6。然后使用以下命令安装 JupyterLab 的中文语言包:

    pip install jupyterlab-language-pack-zh-CN
    
    • 1

    另外还安装了E:\nlp\ChatGLM2-6B-mainE:\nlp\alpaca-lora-main下的requirements.txt,以及sentence-transformers, faiss-cpu,blingfire

    如果要完全卸载 jupyterlab,运行以下命令:

    pip uninstall jupyterlab    # pip安装的执行此命令
    conda uninstall jupyterlab  # conda安装的执行此命令
    # JupyterLab 会在用户的 home 目录下创建一个配置文件夹,需要删除
    rm -r ~/.jupyter
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    另外还需要删除 JupyterLab 扩展和内核

    # 列出已安装的扩展和内核
    jupyter labextension list
    jupyter kernelspec list
    # 卸载扩展和内核
    jupyter labextension uninstall 扩展名称
    jupyter kernelspec uninstall 内核名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.2 常见错误

    2.2.1 版本冲突,jupyterlab无法启动

    正常安装成功jupyterlab之后,在cmd中可以使用以下命令查看版本信息

    jupyter-lab --version
    4.0.6
    
    • 1
    • 2

    然后使用jupyter-lab启动jupyterlab,或者在地址栏输入jupyter lab在指定目录启动jupyterlab:

    在这里插入图片描述

    E盘启动jupyterlab

      但是有一次这两种方式都无法启动,且输入jupyter-lab命令时报错某些包无法导入。估计是我conda安装了jupyterlab 3.6.3,pip安装了jupyterlab 4.0.6,导致版本冲突。因为安装jupyterlab时会同时安装很多依赖包,虽然我是卸载上一个安装版本,但是依赖包并没有卸载,导致新的jupyterlab版本启动时冲突。

    2.2.2 插件版本冲突

    jupyterlab 4直接集成了debugger,一开始不知道,在插件管理器中没搜出来,直接pip安装:

    jupyter labextension install @jupyterlab/debugger
    
    • 1

    结果每次启动jupyterlab时都报错(虽然还是可以启动,但是看着报错就很烦)

    2.3 常用插件

    2.3.1 debugger

    debugger文档

    jupyterlab 2或3版本可以直接在插件管理器中安装jupyterlab/debugger:
    在这里插入图片描述

      jupyterlab 4直接集成了debugger,可以点击notebook右上角的调式按钮(蓝色框),其显示红色就是进入了调试模式。然后和pycharm一样,在需要调试的地方打上断点。点击view-debugger或者右侧边栏的调试按钮(红色框),就可以打开显示调试信息的地方。
    在这里插入图片描述
      上面是使用transformers库进行多选问答时,自定义DataCollatorForMultipleChoice类的代码。在运行以下代码时,会自动跳到断点位置,显示变量信息:

    trainer = Trainer(
        model=model,
        args=training_args,
        train_dataset=tokenized_train_ds,
        eval_dataset=tokenized_train_ds,
        tokenizer=tokenizer,
        data_collator=DataCollatorForMultipleChoice(tokenizer=tokenizer),
    )
    trainer.train()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    • 变量区有列表和树状两种显示方式,变量的值没有显示完全,可以直接复制出来查看。默认变量窗口显示四行,如果不够可以下拉变量窗口。
    • 中间是调试操作按钮,可以点击,也可以使用对应快捷键。
    • 下面的源文件区和左侧都显示调试是代码停止的位置。

    例如调试看出变量的格式:

    label_name = "label" if 'label' in features[0].keys() else 'labels'    
    # 原始features(4个样本)    
    [{'input_ids': [...], 'token_type_ids': [...], 'attention_mask': [...], 'label': 0},
     {'input_ids': [...], 'token_type_ids': [...], 'attention_mask': [...], 'label': 0},
      {'input_ids': [...], 'token_type_ids': [...], 'attention_mask': [...], 'label': 1}, 
      {'input_ids': [...], 'token_type_ids': [...], 'attention_mask': [...], 'label': 0}]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    # 对每个样本(feature,字典格式)使用pop删除key为label的键值对,返回被删除的值
    # 所以feature被删除了label键值对,而labels的值是四个样本label列表[0, 0, 1, 0]
    labels = [feature.pop(label_name) for feature in features]
    
    # 去除label的后的feature(一个样本)
    {'input_ids': [[...], [...], [...], [...], [...]],
     'token_type_ids': [[...], [...], [...], [...], [...]], 
     'attention_mask': [[...], [...], [...], [...], [...]]}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    2.3.2 jupyterlab_code_formatter

    github仓库

    jupyterlab_code_formatter 主要用于格式化代码,支持多种语言:

    动图

    2.4 jupyter技巧

    参考《JupyterLab 极其强大的 10 个秘密技巧》

    1. 多行选择
      在这里插入图片描述
    2. 添加虚拟环境
      使用以下命令将虚拟环境作为内核添加到Jupyter Lab,这样就可以作为一个选项出现在Launcher或内核列表的右上角:
     $ pip install ipykernel  
     $ ipython kernel install --user --name=new_or_existing_env_name
    
    • 1
    • 2

    注意:以上代码需要在你需要添加的虚拟环境使用,而不是jupyter lab的环境

    1. 使用jupyter run命令运行notebook
      使用jupyter run命令,可以像Python脚本一样顺序执行每个笔记本单元格。该命令会以JSON的形式返回每个单元格的输出,所以如果有大量文本输出可能会卡顿。我们可以将不同的超参数保存到单个笔记本中然后运行,这样可以保存运行记录。
     jupyter run path_to_notebook.ipynb
    
    • 1
    1. 分割编辑器窗口
      Jupyter Lab的窗口以标签的形式展示,我们一次可以打开好几个编辑窗口,并且可以拖动窗口,将编辑器窗口分割,演示如下:

    2. 随时查看文档
      有三种方法可以直接从编辑器中查找几乎任何函数或魔法命令的文档。

      1. 使用Shift + Tab键盘快捷键(默认),它会显示一个弹出窗口,其中包含光标所在的函数或类的文档:
        在这里插入图片描述
      2. 上下文帮助:如果不喜欢点击其他地方后弹出窗口消失,还可以通过帮助菜单或Ctrl + I使用上下文帮助。上下文帮助显示游标指向的函数或类的实时文档。
      1. 简单地在函数或类名的末尾添加一个问号(不带括号) 在这里插入图片描述
    3. 使用感叹号(!)运行终端命令

    # 查看目录
    !pwd
    
    • 1
    • 2

      下面是一个更实际的例子。假设有一个数据文件夹,其中包含用于模型训练的图像。所有图像都根据它们的类被分类到目录中。现在需要使用一个快速的方法来计算data/raw/train内部的目录数量,并将其输出存储在number_of_classes中:

     number_of_classes = !ls -1 data/raw/train | wc -l  
       
     >>> print(number_of_classes)  
     43
    
    • 1
    • 2
    • 3
    • 4

    一句shell命令就能解决问题,这样就不用我们写python的目录遍历代码了

    1. winsound通知执行
      winsound 是 Python 标准库中的一个模块,它允许你在 Windows 操作系统上控制声音和播放简单的声音效果。主要用于创建音频提醒、警告或播放简单的声音文件,通常用于命令行脚本、小工具或基本的声音控制需求。
      winsound 模块提供了一些主要的功能和方法,包括:

      1. Beep(frequency, duration): 用来发出蜂鸣声。frequency 指定了蜂鸣声的频率(以赫兹为单位),duration 指定了蜂鸣声的持续时间(以毫秒为单位)。

      2. PlaySound(sound, flags): 该函数允许你播放.wav格式的声音文件(不支持mp3等复杂音频格式)。sound 参数是声音文件的文件名或路径,flags 参数用于指定播放的方式和行为,例如是否循环播放、异步播放等。

      3. MessageBeep(type): 这个函数可以用来发出系统定义的警告声音,type 参数指定了警告声音的类型。

    以下是一个简单的示例,演示了如何使用 winsound 模块发出蜂鸣声:

     import winsound  
     # 训练模型
     ......
     trainer.train()
     # 训练完成后进行通知
     duration = 5000  
     frequency = 440     
     winsound.Beep(frequency, duration)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    1. 自动重载和高亮显示脚本

      如果我们更新了导入的脚本,除非重新启动内核,否则Jupyter将不会自动检测到更改,这会产生很多问题。所以我们可以使用autoreload 命令来避免这个问题:

     %load_ext autoreload  
     %autoreload 1
    
    • 1
    • 2

    上述代码将每秒钟检测并刷新一次内核。它不仅会检测脚本更改,还会检测对所有文件的更改。

      另外对于python脚本,我们还可以使用pycat命令来以语法高亮的形式显示Python脚本的内容。对于其他文件格式,可以使用cat命令。
    在这里插入图片描述

  • 相关阅读:
    Java代理简介
    如何用MATLAB对CSI数据进行预处理(卡尔曼滤波篇)
    uniapp vue3 静态图片引入
    NR覆盖增强方案及标准化进展
    docker运行nginx镜像
    048:mapboxGL本地上传geojson文件,在map上解析显示图形
    161_可视化_Power BI 复刻 GitHub 贡献热力图
    影视广告创意与制作(五)
    苹果加大对印度的扶持,提高在其生产iphone的比重
    leetcode-链表经典题
  • 原文地址:https://blog.csdn.net/qq_56591814/article/details/133522959