1. Python 相关,安装多版本python和pip共存
这一部分摘抄自:https://blog.csdn.net/hymanjack/article/details/80285400 。
ubuntu18.04自带python3,但是没有python2,pip2,pip3。
sudo apt install python2.7 #安装python2.7
sudo apt install python-minimal
sudo apt install curl
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py #安装 pip3, 可能会报错, 可以用
# sudo apt-get install python3-pip # 安装 pip3
sudo python2 get-pip.py #安装pip3
sudo apt install python-testresources #防止pip2出错
sudo apt install python3-testresources #防止pip3出错
sudo pip3 install --upgrade pip #升级pip3
sudo pip2 install --upgrade pip #升级pip2
此时pip和python并不知道指向2还是3,需要自己修改。我们使用alias来设置别名。我要让pip和python都指向3
whereis pip
pip: /usr/local/bin/pip3.6 /usr/local/bin/pip2.7 /usr/local/bin/pip
whereis python
python: /usr/bin/python3.6-config /usr/bin/python2.7 /usr/bin/python3.6 /usr/bin/python /usr/bin/python2.7-config /usr/bin/python3.6m /usr/bin/python3.6m-config /usr/lib/python2.7 /usr/lib/python3.6 /usr/lib/python3.7 /etc/python2.7 /etc/python3.6 /etc/python /usr/local/lib/python2.7 /usr/local/lib/python3.6 /usr/include/python2.7 /usr/include/python3.6 /usr/include/python3.6m /usr/share/python /usr/share/man/man1/python.1.gz
可见pip3在:
/usr/local/bin/pip3.6
python在:
/usr/bin/python3.6
自定义alias别名:
gedit ~/.bashrc
打开文件后,在最后一行加:
alias pip=/usr/local/bin/pip3.6
alias python=/usr/bin/python3.6
然后更新环境:
source ~/.bashrc
2. 安装FEniCS 相关
按照官网提供的安装
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:fenics-packages/fenics
sudo apt-get update
sudo apt-get install --no-install-recommends fenics
sudo apt-get dist-upgrade
等待一段时间安装成功后,
因为我在前面将 Python 时将 Python 指向了 Python3,所以直接运行算例时
python demo_poisson.py
会提示
Traceback (most recent call last):
File "demo_poisson.py", line 79, in <module>
from dolfin import *
ModuleNotFoundError: No module named 'dolfin'
我在网上查找的,可能的原因还是 FEniCS 是与 Python2 相关的,所以用 Python2 运行
python2 demo_poisson.py
这时又提示
Traceback (most recent call last):
File "demo_poisson.py", line 189, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
然后安装 Python2 下的 matplotlib
sudo apt-get install python-matplotlib
再运行
python2 demo_poisson.py
成功。
为了以防在之后 Python3 下调用 matplotlib, 安装 Python3 下的 matplotlib
sudo apt-get install python3-matplotlib
完成。