2013-01-15 20 views
11

नामक कोई मॉड्यूल मुझे pyGTK + का उपयोग करके अजगर और matplotlib के साथ इंटरैक्टिव प्लॉटिंग में कुछ अंतर्दृष्टि प्राप्त करना शुरू हो रहा है। इसलिए मैंने example given at the matplotlib website पर एक नज़र डाली।आयात त्रुटि: _backend_gdk

इस कोड की एक छोटी exerpt है:

#!/usr/bin/env python 
""" 
Example of embedding matplotlib in an application and interacting with 
a treeview to store data. Double click on an entry to update plot 
data 

""" 
import pygtk 
pygtk.require('2.0') 
import gtk 
from gtk import gdk 

import matplotlib 
matplotlib.use('GTKAgg') # or 'GTK' 
from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas 

from numpy.random import random 
from matplotlib.figure import Figure 

वन्स मैं टर्मिनल मैं निम्नलिखित त्रुटि मिलती है में इस स्क्रिप्ट को चलाने के लिए प्रयास करें:

Traceback (most recent call last): 
    File "gtk_spreadsheet.py", line 15, in <module> 
    from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backends/backend_gtk.py", line 33, in <module> 
    from matplotlib.backends.backend_gdk import RendererGDK, FigureCanvasGDK 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backends/backend_gdk.py", line 29, in <module> 
    from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array 
ImportError: No module named _backend_gdk 

मैं अजगर 2.7 है और 2.24 PyGTK स्थापित।

क्या कोई यह पता लगा सकता है कि त्रुटि कहां स्थित है? मुझे लगता है कि यह कुछ लिंकिंग मुद्दों से जुड़ा हो सकता है?

+2

आपने matplotlib को कैसे इंस्टॉल किया? '_backend_gdk' एक सी-पायथन एक्सटेंशन है जिसे संकलित करने की आवश्यकता है। – tacaswell

+0

यदि मैटप्लॉटिब पहले ही संकलित हो गया है तो क्या आप इसे matplotlib से अलग संकलित कर सकते हैं? मैं टर्मिनल के माध्यम से स्रोत से matplotlib का निर्माण। – Gjan

+0

शायद, लेकिन इसे ठीक से लिंक करने के लिए setup.py करता है कि गहरे जादू को दोहराने की आवश्यकता होगी। – tacaswell

उत्तर

11

ध्यान दें कि Debian/Ubuntu के पैकेज की जरूरत 'pygtk2-devel' लेकिन 'अजगर-gtk2-देव' नहीं है:

sudo apt-get install python-gtk2-dev 

इन प्लेटफार्मों पर इस त्रुटि को ठीक करना चाहिए।

+0

यह उत्तर स्वीकार किया जाना चाहिए। स्पष्टता, शुद्धता और एकता के लिए +1। –

+5

यह उत्तर हाथ में समस्या के साथ अप्रासंगिक है – Davide

+0

हां, यह उत्तर मदद नहीं करता है। मैंने मानक पायथन-मैटलप्लिब पैकेज स्थापित किए हैं, और मैं अपने सामान्य जीटीके बैकएंड का उपयोग करके प्लॉट नहीं कर सकता, भले ही _backend_gdk फ़ाइल मेरे सिस्टम में है। – jdpipe

5

यह अभी मेरे सिस्टम पर एक apt- स्थापित matplotlib के बजाय एक पाइप-स्थापित matplotlib का उपयोग करने का एक लक्षण था। Ubuntu/डेबियन पर हैं, तो कोशिश:

pip uninstall matplotlib 
apt install python-matplotlib 

मेरा मानना ​​है कि क्या हो रहा था पिप से स्थापित सी विस्तार जीटीके उत्पादन के लिए आवश्यक का निर्माण नहीं किया है, लेकिन उपयुक्त पैकेज विस्तार पहले से बनाए गए पड़ता है। मेरे पास matplotlib के प्रारंभिक पाइप इंस्टॉलेशन से लॉग नहीं हैं, इसलिए मैं पुष्टि नहीं कर सकता कि यही हुआ।

+0

यह सिर्फ परेशान है, क्यों पीपी काम नहीं करता है? मुझे लगता है कि एपीटी से पैकेज स्थापित करने के लिए हमें समर्थित किसी भी संस्करण के अलावा किसी भी संस्करण का उपयोग करने से रोकता है। फिर भी मैंने पाया कि आप केवल एकमात्र कामकाजी समाधान का जवाब देते हैं। – 2LayerNN300HU

संबंधित मुद्दे