一个“在ubuntu16.04多个python环境下的evo安装和使用”的问题和解决方案:

首先在我的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了

猜你喜欢

转载自blog.csdn.net/qq_44305240/article/details/131274622