社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

医学和生信笔记 • 2 周前 • 66 次点击  
关注公众号,发送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
 
66 次点击