2013-01-02 13 views
6

Pracowałem z python i matplotlib, ale mój skrypt się zawiesił, więc musiałem wyłączyć terminal (Ubuntu 12.04, matplotib-1.1.0, python2.7). Teraz, gdy próbuję uruchomić dowolny skrypt zawiesi na liniiMatplotlib już nie działa z powodu interaktywnego problemu

import matplotlib.pyplot as plt 

z następującym błędem

Traceback (most recent call last): 
    File "new.py", line 4, in <module> 
    import matplotlib.pyplot as plt 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-1.2.0-py2.7-linux-i686.egg/matplotlib/__init__.py", line 151, in <module> 
    from matplotlib.rcsetup import (defaultParams, 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-1.2.0-py2.7-linux-i686.egg/matplotlib/rcsetup.py", line 20, in <module> 
    from matplotlib.colors import is_color_like 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-1.2.0-py2.7-linux-i686.egg/matplotlib/colors.py", line 54, in <module> 
    import matplotlib.cbook as cbook 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-1.2.0-py2.7-linux-i686.egg/matplotlib/cbook.py", line 32, in <module> 
    import new 
    File "/home/federico/Documents/doc_uni/idraulica_ambientale/relazione/scripts/variabili/new.py", line 4, in <module> 
    import matplotlib.pyplot as plt 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-1.2.0-py2.7-linux-i686.egg/matplotlib/pyplot.py", line 23, in <module> 
    from matplotlib import _pylab_helpers, interactive 
ImportError: cannot import name interactive 

Zawiadomienie ostatni wiersz. Próbowałem usunąć i ponownie zainstalować matplotlib zarówno ze źródła i z pip i easy_install, ale nie mogę uciec z niego. Ten sam błąd występuje, gdy próbuję zaimportować z poziomu interpretera python. Zainstalowałem także wersję 1.2.0, aby zobaczyć, czy to działa, ale tak nie jest.

+1

Mówisz, że masz Matplotlib 1.1.0, ale komunikaty o błędach odnoszą się do 1.2.0. Czy masz kilka wersji zainstalowanych w jakiś sposób? – BrenBarn

+0

Zapomniałem o tym powiedzieć. Nie mogłem rozwiązać problemu, więc próbowałem zainstalować wersję 1.2.0. Nie wiem, czy źle to zrobiłem, ale nie działało to również z poprzednim. – fmonegaglia

+1

Co masz na myśli przez "wyłącz terminal"? – abarnert

Odpowiedz

9

Jeśli czytać pliki w ślad stosu,

new.py ->/matplotlib/__init__.py ->matplotlib/rcsetup.py, /matplotlib/colors.py ->/matplotlib/cbook.py ->/home/federico/Documents/../new.py ->matplotlib/pyplot.py

pan nazwał swoją moduł new który shadowing z importu w matplolib.cbook, która jest przyczyną można spróbować Imort pyplot podczas importowania pyplot który aparently wysadza (dokładnie dlaczego jest powyżej mojej ceny). Musisz tylko zmienić nazwę modułu na coś innego niż new.py (i pamiętaj, aby usunąć utworzony plik new.pyc).

Jako test uruchom import matplotlib.pyplot as plt w powłoce interaktywnej.

FYI this jest tym, co obserwujesz.

Ten import zostanie usunięty w mpl 1.3

+0

masz rację, przepraszam za bałagan. W każdym razie, podczas uruchamiania 'from matplotlib import pyplot jak plt' z poziomu powłoki ipython otrzymuję komunikat /usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:127: RuntimeWarning: PyOS_InputHook jest niedostępny dla interaktywnego użycia PyGTK set_interactive (1) – fmonegaglia

+1

@fmonegaglia, który wygląda jak problemy z zależnościami. Jeśli uważasz, że moja odpowiedź odpowiedziała na zadane pytanie, powinieneś ją zaakceptować, a następnie otworzyć nowe pytanie ze szczegółami nowego wydania. – tacaswell

+0

również upewnij się, że bieżący katalog w powłoce interaktywnej nie jest tym, w którym masz zdefiniowane jakieś moduły i nie dodałeś nic do swojej ścieżki Pythona. – tacaswell

Powiązane problemy