Py学习  »  Python

wsl2+python+conda+jupyterlab:配置记录

医学和生信笔记 • 6 月前 • 212 次点击  
关注公众号,发送R语言python,可获取资料

💡专注R语言在🩺生物医学中的使用


设为“星标”,精彩不错过


最近要学习Python处理单细胞,跟着scanpy的tutorial跑流程,发现这句代码一直报错:sc.tl.leiden(adata, flavor="igraph", n_iterations=2),网上搜了一下发现是在Windows中的一个小bug,详情见:sc.tl.leiden with flavor='igraph' raises an (ignored by igraph) “ValueError: high is out of bounds for int32” · Issue #3028 · scverse/scanpy。

所以我安装了wsl,试试在wsl中能不能跑通,简单记录下wsl+python+conda+jupyterlab的安装。


  • 安装wsl

    • 开启功能

    • 安装内核更新包

    • 安装Ubuntu

  • 修改apt镜像

  • 修改pip镜像

  • 安装conda

  • 安装jupyterlab


unset unset安装wslunsetunset

开启功能

我的系统版本是Windows 11专业版 23H2:

按下win+r,输入control打开控制面板,打开程序和功能

点击启用或关闭Windows功能

把以下3项勾上,然后重启电脑:

安装内核更新包

power shell 以管理员方式运行(如果不升级可能会遇到报错,这个命令需要科学上网):

wsl --update

将 WSL 默认版本设置为 WSL 2:




    
wsl --set-default-version 2

安装Ubuntu

打开Microsoft Store,安装Ubuntu即可,我选的22.04

安装完成后就可以在开始菜单看到了,点击即可运行,第一次需要创建账号和密码,要牢记!

win11现在默认的终端非常美观,直接用即可,各种设置都是可以直接点点点修改的,比如界面、字体、图标、配色等:

unsetunset修改apt镜像unsetunset

  • 查看默认apt源:cat /etc/apt/sources.list
  • 更新apt镜像源,安装软件更快

    • 先备份源文件:sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    • 编辑源文件:sudo vim /etc/apt/sources.list
    • 进入vim编辑器,在普通模式下(输入上面的代码后默认就是普通模式),使用dddd是vim中的命令,表示删除整行内容),删除所有内容,然后去搜索apt清华源(或者阿里源:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区),复制并粘贴(直接鼠标右键)到vim,然后输入:wq。然后输入sudo apt update(会输出很多信息),然后输入sudo apt upgrade(会输出更多信息)

ubuntu22.04默认已经安装Python3.10,输入python3 --version可查看版本;但是没有安装pip,可以使用sudo apt install python3-pip安装

unsetunset修改pip镜像unsetunset

接下来修改pip的镜像:

# 清华
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 或者阿里
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

查看设置的结果:

pip config list

unsetunset安装condaunsetunset

安装conda,方便管理软件

  • 首先到清华conda镜像(Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)下载miniconda linux版安装包,当然也可以直接wget官网的包,但是很慢;

    # 这个
    wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_24.11.1-0-Linux-x86_64.sh

    # 或者这个,我选择最新的
    wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
  • 然后用mv命令把安装包移动到/home/liyue/的某一个文件夹下,最好自己建一个新文件夹,用来放各种安装包,方便管理;

  • 运行安装命令:bash Miniconda3-latest-Linux-x86_64.sh,安装过程中注意同意或者回车(卖萌哥的教程:conda的安装与使用 2.0版(2022-08-12更新) - 简书)

  • 安装完成后,会告诉你如果不想每次启动Linux时默认启动conda的base环境,可以使用命令conda config --set auto_activate_base false

  • 更改conda镜像为清华源(anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)或者其他源(Anaconda 软件仓库镜像使用帮助 - MirrorZ Help):

    # 我选的上科大的镜像
    conda config --add channels https://mirrors.shanghaitech.edu.cn/anaconda/pkgs/main
    conda config --add channels https://mirrors.shanghaitech.edu.cn/anaconda/pkgs/r
    conda config --add channels https://mirrors.shanghaitech.edu.cn/anaconda/pkgs/msys2
    conda config --set custom_channels.conda-forge https://mirrors.shanghaitech.edu.cn/anaconda/cloud/
    conda config --set custom_channels.bioconda https://mirrors.shanghaitech.edu.cn/anaconda/cloud/

    # 显示安装的频道
    conda config --set show_channel_urls yes 
    # 查看已经添加的频道
    conda config --get channels
  • 创建新环境,彼此之间不会污染

unsetunset安装jupyterlabunsetunset

直接使用pip安装即可:

pip install jupyterlab

安装完成后,输入jupyter lab,发现运行不了,然后我关闭wsl,再重新打开,发现就可以顺利运行了。。。

我使用conda创建了一个叫sc的小环境,然后安装了scanpy这个包,激活这个小环境后,再运行jupyter lab,发现在jupyter中import scanpy as sc总是报错找不到这个包,搜索后发现是因为内核不在同一个位置导致的。

pip安装的这个内核在:

import sys
print(sys.path)

['/usr/lib/python310.zip''/usr/lib/python3.10''/usr/lib/python3.10/lib-dynload''''/home/ayue/.local/lib/python3.10/site-packages''/usr/local/lib/python3.10/dist-packages''/usr/lib/python3/dist-packages']

但是sc这个小环境的包位于conda的目录下,所以导致import失败:

于是根据这篇教程(Jupyter Lab 使用 conda 虚拟环境_jupyterlab 怎么读出conda虚拟环境-CSDN博客)修改,给已经创建好的sc这个小环境添加ipykernel

# 给小环境sc添加ipykernel
conda install -n sc ipykernel
# 激活小环境conda activate sc
# 将小环境写入jupyter lab的kernel中
python -m ipykernel install --user --name sc --display-name "sc"

这样就可以切换内核了:

切换内核后,再import就不会报错了,就可以顺利使用这个小环境的包了。



联系我们,关注我们

  1. 免费QQ交流群1:613637742
  2. 免费QQ交流群2:608720452
  3. 公众号消息界面关于作者获取联系方式
  4. 知乎、CSDN、简书同名账号
  5. 哔哩哔哩:阿越就是我

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/178140
 
212 次点击