Python 相关以及安装 FEniCS

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 
    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 
    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

完成。

你可能感兴趣的:(Ubuntu,FEniCS)