"यूजरवार्डिंग: मैटलपोटलिब वर्तमान में एग का उपयोग कर रहा है, जो एक गैर-जीयूआई बैकेंड है, इसलिए यह आंकड़ा दिखा सकता है।" जब Pycharm पर pyplot के साथ आंकड़ा साजिश रचने


124

मैं pyplot का उपयोग करके एक सरल ग्राफ बनाने की कोशिश कर रहा हूं, जैसे:

import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()

लेकिन आंकड़ा दिखाई नहीं देता है और मुझे निम्न संदेश मिलता है:

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

मैंने कई स्थानों पर देखा कि एक को निम्नलिखित का उपयोग करके matplotlib के कॉन्फ़िगरेशन को बदलना पड़ा:

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

मैंने ऐसा किया, लेकिन फिर एक त्रुटि संदेश मिला क्योंकि यह एक मॉड्यूल नहीं ढूंढ सकता है:

ModuleNotFoundError: No module named 'tkinter'

फिर, मैंने pip install tkinter(वर्चुअल वातावरण के अंदर) का उपयोग करके "टिंकर" स्थापित करने की कोशिश की , लेकिन यह इसे नहीं ढूंढता है:

Collecting tkinter
  Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter

मुझे यह भी उल्लेख करना चाहिए कि मैं एक आभासी वातावरण का उपयोग करके Pycharm सामुदायिक संस्करण IDE पर यह सब चला रहा हूं, और यह कि मेरा ऑपरेटिंग सिस्टम लिनक्स / Ubuntu 18.04 है।

मैं यह जानना चाहूंगा कि ग्राफ़ प्रदर्शित करने में सक्षम होने के लिए मैं इस समस्या को कैसे हल कर सकता हूं।


7
एक पल के लिए ग्राफ के बारे में भूल जाओ। आपकी समस्या tkinter स्थापित करने के लिए है। क्या आपने इसके लिए उपलब्ध समाधानों में से कोई भी प्रयास किया, जैसे कि stackoverflow.com/questions/4783810/install-tkinter-for-python ?
इम्पोर्टेंसऑफबिंगएर्नेस्ट

3
क्या आप वास्तव में किसी भी चीज़ के लिए टिंकर का उपयोग कर रहे हैं, या आपने इसे केवल एक प्लैट बैकेंड के रूप में चुना है?
जी। एंडरसन

1
@ImportanceOfBeingErnest: संकेत के लिए धन्यवाद। मैं वास्तव में पहले टिंकर को स्थापित करने पर ध्यान केंद्रित करूंगा। आपके द्वारा दिए गए लिंक पर मेरी नज़र होगी और देखिए कि क्या मैं इसमें से कुछ भी बना सकता हूँ।
johnwolf1987

1
@ G.Anderson: मुझे पता नहीं था कि इससे पहले कि मैं matplotlib के साथ इस त्रुटि में भाग गया था, क्या tkinter था। अब मैं इसे रेखांकन दिखाने में सक्षम होने के लिए इसे स्थापित करने की कोशिश कर रहा हूं (इसलिए हां, मुझे लगता है कि मैंने इसे केवल एक प्लैट बैकेंड के रूप में चुना है)। यदि आप किसी अन्य तरीके से जानते हैं (अर्थात बिना कशीदाकारी के), तो मुझे यह सुनकर खुशी होगी।
johnwolf1987

2
@ G.Anderson: मैंने स्क्रिप्ट को अलग-अलग बैकेंड के माध्यम से चलाने के लिए चलाया। यह पता चला है कि केवल TkAgg उपलब्ध है! दरअसल, मैंने स्क्रिप्ट का परीक्षण करने से पहले इसे स्थापित किया था।
johnwolf1987

जवाबों:


191

मुझे अपनी समस्या का हल मिल गया ( ImportanceOfBeingErnest की मदद के लिए धन्यवाद )।

मुझे बस इतना करना था tkinterकि निम्नलिखित कमांड का उपयोग करके लिनक्स बैश टर्मिनल के माध्यम से स्थापित किया जाए :

sudo apt-get install python3-tk

इसके बजाय इसे pipPycharm में आभासी वातावरण में या सीधे स्थापित करने के बजाय ।


7
वास्तव में, मुझे यह भी एहसास हुआ कि जब से मैंने टिंकर स्थापित किया है, मुझे अपने कोड की पहली दो पंक्तियों को जोड़ने की आवश्यकता नहीं है ( import matplotlibऔर matplotlib.use('TkAgg'))
johnwolf1987

पूर्णता के लिए, OpenSuse लीप के तहत मुझे जो पैकेज स्थापित करना था उसे कहा जाता है python3-matplotlib-tk
एल्ड्रेड

5
यह उत्तर संभवतः उल्लेख कर सकता है कि tkinterअजगर संस्करण-विशिष्ट है इस अर्थ में कि यह विशेष आदेश tkinterआपके डिफ़ॉल्ट संस्करण के लिए विशेष रूप से स्थापित करेगा । मान लें कि आपके पास विभिन्न वर्चुअल एनवी के लिए अलग-अलग पायथन संस्करण इंस्टॉलेशन हैं। उस स्थिति में, आपको इसे काम करने वाले वेव में उपयोग किए जाने वाले वांछित अजगर संस्करण के लिए स्थापित करना होगा। उदाहरण के लिए, मेरे मामले में sudo apt-get install python3.7-tk:। यह जानने के बाद कि मुझे अपने वैश्विक अजगर संस्करण के लिए इसे स्थापित करने के बाद भी बिना मॉड्यूल नाम 'टेंकर' की त्रुटियां प्राप्त हुए उचित समय में संघर्ष करना पड़ा।
xicocaio

मुझे इस कमांड को चलाने के लिए अपने पीसी पर लिनक्स बैश टर्मिनल स्थापित करना था। और यह काम किया! देखें howtogeek.com/249966/...
arame3333

38

मेरे मामले में, त्रुटि संदेश का अर्थ था कि मैं एक हेडलेस कंसोल में काम कर रहा था। इसलिए plt.show()काम नहीं कर सका। क्या काम कर रहा था plt.savefig:

import matplotlib.pyplot as plt

plt.plot([1,2,3], [5,7,4])
plt.savefig("mygraph.png")

मुझे इसका जवाब मिला जीथब रिपॉजिटरी


16

यदि आप आर्क लिनक्स (जैसे Manjaroया Antegros) वितरण का उपयोग करते हैं तो बस टाइप करें:

sudo pacman -S tk

और सभी पूरी तरह से काम करेंगे!


1
धन्यवाद। उसी की तलाश में था।
लॉजिकऑब्स्ट्रक्शन

7

कोशिश करें import tkinterक्योंकि पाइक्रोम आपके लिए पहले से ही टिक्कर स्थापित कर चुका है, मैंने पायथन के लिए इंस्‍टॉल टिंकर को देखा

आप शायद कोशिश कर सकते हैं:

import tkinter
import matplotlib
matplotlib.use('TkAgg')
plt.plot([1,2,3],[5,7,4])
plt.show()

टीक्टर-इंस्टालिंग तरीके से

मैंने आपके तरीके की कोशिश की है, ऐसा लगता है कि मेरे कंप्यूटर पर चलने में कोई त्रुटि नहीं है, यह सफलतापूर्वक आंकड़ा दिखाता है। शायद इसलिए कि pycharm के पास एक सिस्टम पैकेज के रूप में टिंकर है, इसलिए यू को इसे स्थापित करने की आवश्यकता नहीं है। लेकिन अगर आप अंदर tkinter नहीं ढूँढ सकते हैं, तो आप tkdocs पर जाकर tkinter को स्थापित करने का तरीका देख सकते हैं , क्योंकि इसमें उल्लेख किया गया है, tkinter अजगर के लिए एक मुख्य पैकेज है।


आपका सुझाव देने के लिए धन्यवाद। दुर्भाग्य से, यह काम नहीं करता है ( ModuleNotFoundError: No module named 'tkinter')। मैं किसी और तरीके से टिक्कर लगाने की कोशिश करूंगा।
johnwolf1987

6

मैं भी PyCharm में इस मुद्दे था। यह समस्या इसलिए है क्योंकि आपके पास अपनी मशीन में tkinter मॉड्यूल नहीं है।

नीचे दिए गए चरणों का पालन करने के लिए (अपना उपयुक्त ओएस चुनें)

Ubuntu उपयोगकर्ताओं के लिए

 sudo apt-get install python-tk

या

 sudo apt-get install python3-tk

Centos उपयोगकर्ताओं के लिए

 sudo yum install python-tkinter

या

 sudo yum install python3-tkinter

विंडोज के लिए, tk इंस्टॉल करने के लिए पाइप का उपयोग करें

Tkinter स्थापित करने के बाद अपने Pycharm को पुनरारंभ करें और अपना कोड चलाएं, यह काम करेगा


3

सरल स्थापित करें

pip3 install PyQt5==5.9.2

इससे मेरा काम बनता है।


हाँ, यह काम करता है! मैंने इसे PyCharm के टर्मिनल के माध्यम से अपने वर्चुअल एनवी के अंदर स्थापित किया।
डब्ल्यूएच ली

मैं संस्करण संख्या निर्दिष्ट किए बिना "pip3 इंस्टॉल PyQt5" निष्पादित करता हूं।
oraclesoon

1

आप कमांड का उपयोग करके aggTkinter से बैकएंड का उपयोग करके matplotlib को बदल सकते हैंTKAgg

matplotlib.use('TKAgg',warn=False, force=True)

यह इस तथ्य के कारण बहुत उपयोगी था कि मुझे अपने इंटरैक्टिव ipython कंसोल lol को फिर से लोड नहीं करना पड़ा। धन्यवाद
युलिआन Pinzaru

0

लिनक्स मिंट 19. मेरे लिए मददगार:

sudo apt install tk-dev

पीएस Recompile अजगर इंटरप्रेटर पैकेज स्थापित करने के बाद।


0

बस अगर यह किसी की मदद करता है।

पायथन संस्करण: 3.7.7 मंच: उबंटू 18.04.4 एलटीएस

यह डिफ़ॉल्ट अजगर संस्करण 3.6.9 के साथ आया था, हालांकि मैंने इस पर अपना 3.7.7 संस्करण अजगर स्थापित किया था (इसे स्रोत से निर्मित किया गया था)

जब help('module')सूची में tkinter दिखाता है तब भी tkinter काम नहीं कर रहा था ।

निम्नलिखित चरणों ने मेरे लिए काम किया:

  1. sudo apt-get install tk-dev.

अजगर का पुनर्निर्माण करें: 1. अपने अजगर फ़ोल्डर में नेविगेट करें और चेक चलाएँ:

cd Python-3.7.7
sudo ./configure --enable-optimizations
  1. मेक कमांड का उपयोग करके निर्माण sudo make -j 8 करें : --- यहां 8 प्रोसेसर की संख्या है, आपका उपयोग करके जांच करेंnproc कमांड ।
  2. का उपयोग कर स्थापित:

    sudo make altinstall
    

सूडो मेक इनस्टॉल का उपयोग न करें, यह डिफ़ॉल्ट 3.6.9 संस्करण को अधिलेखित कर देगा, जो बाद में गड़बड़ हो सकता है।

  1. अब तिनके की जाँच करें
    python3.7 -m tkinter
    

एक विंडो बॉक्स पॉप अप हो जाएगा, अब आपका टिंकर तैयार है।


0

बहुत सारे पैकेज ( Spyder3 से 4, Kerasऔर Tensorflowउनकी बहुत सारी निर्भरताएँ) अपग्रेड करने के बाद , मुझे आज भी यही समस्या थी! मैं समझ नहीं सकता कि क्या हुआ; लेकिन (conda- आधारित) आभासी वातावरण है कि Spyder3 का उपयोग कर रखा समस्या नहीं थी। यद्यपि tkinterबैकएंड को स्थापित करना या बदलना, via matplotlib.use('TkAgg)जैसा कि ऊपर दिखाया गया है, या बैकेंड को कैसे बदलना है , इस अच्छी पोस्ट से समस्या का समाधान हो सकता है, मैं इन्हें कठोर समाधान के रूप में नहीं देखता। मेरे लिए, matplotlibइसे अनइंस्टॉल करना और पुन: स्थापित करना जादू था और समस्या हल हो गई थी।

pip uninstall matplotlib

... तो, स्थापित करें

pip install matplotlib

उपरोक्त सभी से, यह एक पैकेज प्रबंधन समस्या हो सकती है, और बीटीडब्ल्यू, मैं condaऔर pipजब भी संभव हो, दोनों का उपयोग करता हूं ।


0

जब मैं स्पाइडर पर इस त्रुटि में भाग गया, तो मैंने कोड कोडिंग के अपने ब्लॉक को हाइलाइट करने के लिए अपनी कोड लाइन चलाने से बदल दिया और कोड को एक ही बार में चला दिया। वोइला, छवि दिखाई दी।



0

@Xicocaio की टिप्पणी पर प्रकाश डाला जाना चाहिए।

tkinter python संस्करण-विशिष्ट है इस अर्थ में कि sudo apt-get install python3-tktkinter विशेष रूप से आपके डिफ़ॉल्ट संस्करण के लिए python स्थापित करेगा। मान लीजिए कि आपके पास विभिन्न आभासी वातावरणों में अलग-अलग अजगर संस्करण हैं, तो आपको उस आभासी वातावरण में उपयोग किए जाने वाले वांछित अजगर संस्करण के लिए टिक्टर स्थापित करना होगा। उदाहरण के लिए, sudo apt-get install python3.7-tk। ऐसा नहीं करने पर No module named ' tkinter'भी वैश्विक पायथन संस्करण के लिए इसे स्थापित करने के बाद भी त्रुटियों को बढ़ावा मिलेगा ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.