【问题标题】:How to resolve python dependency version如何解决python依赖版本
【发布时间】:2021-01-06 00:49:50
【问题描述】:

我尝试运行一个使用 matplotlib 的 python 脚本。我收到以下错误:

Traceback (most recent call last):
  File "q3.py", line 6, in <module>
    matplotlib.use('TkAgg')
  File "/home/raj/raj/venvs/notes-bash-venv/lib/python3.8/site-packages/matplotlib/__init__.py", line 1162, in use
    plt.switch_backend(name)
  File "/home/raj/raj/venvs/notes-bash-venv/lib/python3.8/site-packages/matplotlib/pyplot.py", line 276, in switch_backend
    class backend_mod(matplotlib.backend_bases._Backend):
  File "/home/raj/raj/venvs/notes-bash-venv/lib/python3.8/site-packages/matplotlib/pyplot.py", line 277, in backend_mod
    locals().update(vars(importlib.import_module(backend_name)))
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/raj/raj/venvs/notes-bash-venv/lib/python3.8/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
    from . import _backend_tk
  File "/home/raj/raj/venvs/notes-bash-venv/lib/python3.8/site-packages/matplotlib/backends/_backend_tk.py", line 6, in <module>
    import tkinter as tk
ModuleNotFoundError: No module named 'tkinter'

所以我尝试安装tkinter:

$ pip3 install tkinter
ERROR: Could not find a version that satisfies the requirement tkinter (from versions: none)
ERROR: No matching distribution found for tkinter

可能有什么问题?对于同一个脚本,我使用 pip3 install numpy 之类的命令安装了 numpy、pandas 和 matplotlib。我在 python 3.8.2 和 pip-20.2.3 上。我也在 WSL2 上使用 Ubuntu 20.04。

【问题讨论】:

  • tkinter 是一个内置库
  • 那么可能是什么问题?我刚刚按照here 的建议安装了它。也只是为了更新,如果重要的话,我会在 WSL 上使用 ubuntu 20.04。
  • 你在使用pyinstaller吗?
  • @CoolCloud 在做pip install。之前确实遇到过 pyinstaller。怎么了?它会解决我的问题吗?
  • 我不确定,为什么不试试呢?

标签: python pip


【解决方案1】:

您可以在操作系统范围内使用此命令解决它:

sudo apt install python3-tk

检查一下,让我知道它是否有效。

【讨论】:

  • 我刚刚按照here 的建议运行了apt-get install python-tk。我也应该试试你的命令 (python3-tk) 吗?
  • 据我所知,python-tk 适用于 Python2,而 python3-tk 适用于 Python3。
  • 好的最终得到File "/home/raj/raj/venvs/notes-bash-venv/lib/python3.8/site-packages/matplotlib/pyplot.py", line 284, in switch_backend raise ImportError( ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
【解决方案2】:

您是否尝试为 Tkinter 系统范围安装依赖项?:

sudo apt-get install python3-tk

【讨论】:

  • 我刚刚按照here 的建议运行了apt-get install python-tk。我也应该试试你的命令吗?
  • @anir, python-tk 可能和python3-tk不一样(不同的python版本)
  • 好的最终得到File "/home/raj/raj/venvs/notes-bash-venv/lib/python3.8/site-packages/matplotlib/pyplot.py", line 284, in switch_backend raise ImportError( ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
猜你喜欢
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 2012-01-21
  • 2021-03-07
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
相关资源
最近更新 更多