首先在我的ubuntu16.04环境下同时安装了python2(2.7.12)和python3(3.6.13),我最开始安装evo的时候是在python2的环境下直接通过如下指令安装:
pip install evo --upgrade --no-binary evo
安装好了以后使用的时候会有如下报错:
Traceback (most recent call last):
File "/usr/lib/python3.6/tkinter/__init__.py", line 37, in <module>
import _tkinter
ModuleNotFoundError: No module named '_tkinter'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/kinetic/.local/lib/python3.6/site-packages/evo/entry_points.py", line 92, in launch
main_module.run(args)
File "/home/kinetic/.local/lib/python3.6/site-packages/evo/main_traj.py", line 398, in run
from evo.tools import plot
File "/home/kinetic/.local/lib/python3.6/site-packages/evo/tools/plot.py", line 34, in <module>
import matplotlib.pyplot as plt
File "/home/kinetic/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2336, in <module>
switch_backend(rcParams["backend"])
File "/home/kinetic/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 276, in switch_backend
class backend_mod(matplotlib.backend_bases._Backend):
File "/home/kinetic/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 277, in backend_mod
locals().update(vars(importlib.import_module(backend_name)))
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/kinetic/.local/lib/python3.6/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
from . import _backend_tk
File "/home/kinetic/.local/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 6, in <module>
import tkinter as tk
File "/usr/lib/python3.6/tkinter/__init__.py", line 39, in <module>
raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package
[ERROR] evo module evo.main_traj crashed - no logfile written (disabled)
这个一搜发现其实没有安装python3-tk这个包,就用如下指令安装:
sudo apt install python3-tk
但是安装了以后发现还是会报上面同样的错误,然后我仔细看了一下Traceback发现里面路径使用的是python3.6,这意味着evo是在Python 3.6的环境中运行的,并且可能使用的是不同的Python虚拟环境,而不是我默认的Python 2.7。
所以这个时候就需要创造一个Python2.7的虚拟环境,并在虚拟环境中重新安装evo(之前装的evo不用删也不影响在虚拟环境中重新安装!)
sudo apt-get install python-virtualenv//安装python2.7虚拟环境
virtualenv -p /usr/bin/python2.7 myenv//创建python2.7虚拟环境
source myenv/bin/activate//进入python2.7虚拟环境
pip install evo //安装evo
这里安装evo的时间可能会有点长,安装完了以后就使用evo了