科学计算环境搭建(Win10+WSL2+Ubuntu)
概要
-
系统平台: 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