conda安装使用jupyterlab注意事项

文章目录

    • 一、conda安装
      • [1.1 conda安装](#1.1 conda安装)
      • [1.2 常见命令](#1.2 常见命令)
      • [1.3 常见问题](#1.3 常见问题)
    • 二、jupyterlab
      • [2.1 jupyterlab安装和卸载](#2.1 jupyterlab安装和卸载)
      • [2.2 常见错误](#2.2 常见错误)
        • [2.2.1 版本冲突,jupyterlab无法启动](#2.2.1 版本冲突,jupyterlab无法启动)
        • [2.2.2 插件版本冲突](#2.2.2 插件版本冲突)
      • [2.3 常用插件](#2.3 常用插件)
        • [2.3.1 debugger](#2.3.1 debugger)
        • [2.3.2 jupyterlab_code_formatter](#2.3.2 jupyterlab_code_formatter)
      • [2.4 jupyter技巧](#2.4 jupyter技巧)

一、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环境为当前使用环境。如果要更改某个环境为默认激活环境,你需要进行一下操作:

python 复制代码
conda config --set auto_activate_base false				# 禁用默认激活基础环境
conda config --set auto_activate your_env_name			# 设置your_env_name为默认的激活环境

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

python 复制代码
conda config --set auto_activate_base true 				# 恢复默认激活base环境

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

conda默认安装源是Anaconda仓库:

python 复制代码
conda config --show-sources    # 显示当前配置的源
conda config --backup          # 备份原始配置文件

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

python 复制代码
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/  # 清华源
conda config --add channels https://mirrors.aliyun.com/pypi/simple/					  # 阿里源

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

python 复制代码
# 配置文件中,注释以#符号开头,且不能写行内注释,只能单独放一行
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

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

python 复制代码
# conda-forge是配置文件中的channel名称,package_name是安装包的名称
conda install -c conda-forge package_name

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

  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出现如下报错:
python 复制代码
无法将"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

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

python 复制代码
(& "D:\Miniconda\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | Invoke-Expression

之前安装在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 的中文语言包:

python 复制代码
pip install jupyterlab-language-pack-zh-CN

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

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

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

另外还需要删除 JupyterLab 扩展和内核

python 复制代码
# 列出已安装的扩展和内核
jupyter labextension list
jupyter kernelspec list
# 卸载扩展和内核
jupyter labextension uninstall 扩展名称
jupyter kernelspec uninstall 内核名称

2.2 常见错误

2.2.1 版本冲突,jupyterlab无法启动

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

python 复制代码
jupyter-lab --version
4.0.6

然后使用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安装:

python 复制代码
jupyter labextension install @jupyterlab/debugger

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

2.3 常用插件

2.3.1 debugger

debugger文档

jupyterlab 2或3版本可以直接在插件管理器中安装jupyterlab/debugger:

jupyterlab 4直接集成了debugger,可以点击notebook右上角的调式按钮(蓝色框),其显示红色就是进入了调试模式。然后和pycharm一样,在需要调试的地方打上断点。点击view-debugger或者右侧边栏的调试按钮(红色框),就可以打开显示调试信息的地方。

上面是使用transformers库进行多选问答时,自定义DataCollatorForMultipleChoice类的代码。在运行以下代码时,会自动跳到断点位置,显示变量信息:

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

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

python 复制代码
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}]
python 复制代码
# 对每个样本(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': [[...], [...], [...], [...], [...]]}
2.3.2 jupyterlab_code_formatter

github仓库

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

2.4 jupyter技巧

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

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

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

  1. 使用jupyter run命令运行notebook
    使用jupyter run命令,可以像Python脚本一样顺序执行每个笔记本单元格。该命令会以JSON的形式返回每个单元格的输出,所以如果有大量文本输出可能会卡顿。我们可以将不同的超参数保存到单个笔记本中然后运行,这样可以保存运行记录。
console 复制代码
 jupyter run path_to_notebook.ipynb
  1. 分割编辑器窗口

    Jupyter Lab的窗口以标签的形式展示,我们一次可以打开好几个编辑窗口,并且可以拖动窗口,将编辑器窗口分割,演示如下:

  2. 随时查看文档

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

    1. 使用Shift + Tab键盘快捷键(默认),它会显示一个弹出窗口,其中包含光标所在的函数或类的文档:

    2. 上下文帮助:如果不喜欢点击其他地方后弹出窗口消失,还可以通过帮助菜单或Ctrl + I使用上下文帮助。上下文帮助显示游标指向的函数或类的实时文档。

    3. 简单地在函数或类名的末尾添加一个问号(不带括号)

  3. 使用感叹号(!)运行终端命令

bash 复制代码
# 查看目录
!pwd

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

python3 复制代码
 number_of_classes = !ls -1 data/raw/train | wc -l  
   
 >>> print(number_of_classes)  
 43

一句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 模块发出蜂鸣声:

python3 复制代码
 import winsound  
 # 训练模型
 ......
 trainer.train()
 # 训练完成后进行通知
 duration = 5000  
 frequency = 440     
 winsound.Beep(frequency, duration)
  1. 自动重载和高亮显示脚本

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

bash 复制代码
 %load_ext autoreload  
 %autoreload 1

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

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

相关推荐
MonkeyKing_sunyuhua8 小时前
ubuntu22.04安装conda
conda·miniconda
Json____21 小时前
python的安装环境Miniconda(Conda 命令管理依赖配置)
开发语言·python·conda·miniconda
东成20221 天前
从配置anaconda到配置pycharm
开发语言·python·conda
Biomamba生信基地2 天前
jupyter如何切换内核
ide·python·jupyter
豆本-豆豆奶2 天前
给初学者的 Jupyter Notebook 教程
开发语言·python·jupyter·安装教程·notebook
勤奋的大熊猫2 天前
Jupyter lab 打开时默认使用 Notebook 而不是浏览器
ide·python·jupyter
三世2 天前
Jupyter notebook 添加目录插件
jupyter·插件·目录·notebook
曼彻斯特的海边3 天前
CentOS 7上安装Conda
linux·centos·conda
小酒窝.3 天前
深度学习工具 Anaconda、conda、CUDA、cuDNN、pytorch、Cuda Toolkit 解释
pytorch·深度学习·conda
mhl11074 天前
Linux 上安装 conda 步骤实现
linux·运维·ubuntu·centos·ssh·conda·运维开发