簡體   English   中英

ModuleNotFoundError:virtualenv 中沒有名為“_tkinter”的模塊

[英]ModuleNotFoundError: No module named '_tkinter' within virtualenv

我有一個使用 virtualenv (pipenv) 設置的 python 項目。 我使用pipenv shell來創建虛擬環境,並在他們的內部我能夠使用python main.py運行我的腳本

主文件

import tkinter
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.plot(x, y)
plt.show()

我試圖顯示 plot 但我收到以下錯誤:

File " /home/linuxbrew/.linuxbrew/opt/python@3.8/lib/python3.8/tkinter/init .py", line 36, in import _tkinter # If this failed your Python may not be configured for Tk ModuleNotFoundError: No名為“_tkinter”的模塊

我試過做sudo apt-get install python3-tk並重新創建虛擬環境,但這確實有效。

  1. 還有另一種方法可以顯示沒有 tkinter 的 plot 嗎? matplotlib.use('TkAgg')
  2. 我可以從 virtualenv 中安裝 tkinter 嗎?
  3. virtualenv可以訪問tkinter(python3-tk)的機器版本嗎

Python 3.8.5

為了解決這個問題,您可以使用不同的matplotlib 后端,它可以在虛擬環境中工作,因為我們可以通過 pip 安裝它。

安裝

pip install Qt5Agg

或者

pipenv install Qt5Agg

用法

import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.plot(x, y)
plt.show()

您可以使用以下聲明跳過在matplotlib中使用tkinter

import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt

' agg ' 激活不同於tkinter的后端

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM