科学计算环境搭建(Win10+WSL2+Ubuntu)

科学计算环境搭建(Win10+WSL2+Ubuntu)

2020-11-13
| 科学计算 | | julia , python , jupyter , fenics , sympy , scipy | Comment 评论

概要

  • 系统平台: Win10_64 + WSL2 + Ubuntu

  • 目标:Python3.7+Julia1.5.3+JupyterLab+MatplotLib+SymPy+SciPy+FEniCS2019

  • 以Julia作为我主要的使用语言,确保能调用Python的库

  • 目前FEniCS不支持Windows,所以我选择 Win10+WSL+Ubuntu

  • 目前FEniCS2019有问题(至少存在折磨我的问题),所以我选择FEniCS2018

  • FEniCS2019的问题已经解决,所以我还是选择FEniCS2019(详细见后)。

第0步:在Win10上,配置安装好 WSL + Ubuntu

不是本文主题,略。 后面实际以Ubuntu为例。

第1步:安装Miniconda

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh  # 一路yes

source .bashrc # 激活

第2步:配置国内源

conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --remove channels  defaults
conda config --set show_channel_urls yes
conda clean -i # 立刻生效

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple  

conda update conda # 升级conda
conda clean -p # 清除没用

第3步:安装科学计算环境(Python)

conda create --name fenics2019 python=3.7 jupyterlab matplotlib sympy scipy 

conda activate fenics2019 # 激活环境

# conda install  fenics=2019 mshr=2019 有问题
# 建议安装下面这个组合
conda install  fenics=2019.1.0=py37_9
conda install  mshr=2019.1.0=py37hf9f41d3_3

conda clean -p # 清除没用

conda list  # 核对已安装版本

python
>>> import matplotlib, sympy, scipy, fenics, mshr   # 核对正常加载否

第4步:安装Julia

wget https://mirrors.tuna.tsinghua.edu.cn/julia-releases/bin/linux/x64/1.5/julia-1.5.3-linux-x86_64.tar.gz
tar -x -f julia-1.5.3-linux-x86_64.tar.gz

第5步:配置整合

#  设定工作目录
jupyter notebook --generate-config

务必仔细检查,根据您的实际情况修改:

# 修改配置:vim ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.notebook_dir = '/home/chaoskey/sci'
c.NotebookApp.use_redirect_file = False

务必仔细检查,根据您的实际情况修改:

# 在文件末尾添加:vim .bashrc
export BROWSER='/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'
export PATH="/home/chaoskey/julia-1.5.3/bin:$PATH"
export JULIA_PKG_SERVER="https://mirrors.bfsu.edu.cn/julia"
export CONDAENV=fenics2019
conda activate $CONDAENV
export JUPYTER="/home/chaoskey/miniconda3/envs/$CONDAENV/bin/jupyter"
export PYTHON="/home/chaoskey/miniconda3/envs/$CONDAENV/bin/python"

第6步:安装科学计算环境(Julia)

julia
]

pkg> add PyCall PyPlot SymPy SciPy
pkg> add https://github.com/chaoskey/FenicsPy.jl
pkg> add GR Plots IJulia 
pkg> gc   # 清除没用
pkg> st    # 核对已安装版本

using PyCall, PyPlot, SymPy, SciPy, FenicsPy, GR, Plots, IJulia  # 核对正常加载否 

可能问题的解决(若没问题,则忽略之)

  • 1) 每次切换Python环境后,为了确保jupyter和Julia能正常调用,务必执行:

务必仔细检查,根据您的实际情况修改:

# vim .bashrc (手工修改)
export CONDAENV=fenics2019
julia
]
pkg> build PyCall
pkg> precompile

using PyCall, PyPlot, SymPy, SciPy, FenicsPy
  • 2)Error: Tree Hash Mismatch!

根据错误提示,依次将 ~/.julia/artifacts/ 中对应的文件夹名作修改(可能要修改的会比较多),然后重新build

Downloading artifact: Xorg_xcb_util
###################################################### 100.0%
┌ Error: Tree Hash Mismatch!
│ Expected git-tree-sha1: cacd8c147f866d6672e1aca9bb01fb919a81e96a (修改后的文件名)
│ Calculated git-tree-sha1: 11f8623eb889dadcbbb39a3cd52e8d5e0340a0ca (修改前的文件名)

注意:如果要修改的很多,我建议将错误信息复制到文本编辑器,通过正则替换,变成修改文件名的 shell脚本,最后执行,就可以批量修改文件名。

julia
]

pkg> build GR Plots IJulia 
pkg> precompile

常用命令(备忘)

# 环境列表
conda info -e

# 删除指定环境
conda remove -n tf --all
# 创建环境 
conda create --name tf     
# 克隆环境
conda create --clone tensorflow --name tf  

# 激活特定环境
conda activate tf  
# 退出当前环境 
conda deactivate  

# 当前环境安装库包
conda list 

# 启动Jupyter
nohup jupyter-lab  > nb.log  2>&1 & 

# 查看日志
tail -f nb.log

# 退出Jupyter
jobs
fg %1

ps -ef | grep lab
kill -9 id

# 清理Python无用库
conda clean -p

# 清理Julia无用库
julia
]
pkg> gc

# 清理ubuntu无用包
sudo apt autoremove