2016-04-01 18 views
21

Ich habe eine Tabelle mit einem interaktiven Schieberegler erstellt, mit dem ich zwischen verschiedenen Zeiträumen auf meinem Tisch wechseln kann. Es funktionierte in den letzten paar Tagen, bis heute, als ich das Notebook neu lief, wird die Gleitleiste nicht mehr angezeigt. Es werden keine Fehlermeldungen angezeigt. Der Code scheint gut zu laufen, wie die Tabelle erscheint, aber der Schieberegler erscheint einfach nicht. Ich habe auch meinen Code nicht geändert, da ich an einem separaten Teil meines Notebooks arbeitete.IPython Notebook ipywidgets wird nicht angezeigt

Ich versuchte viele Ansätze, einschließlich der Suche in diesem Raum, war aber immer noch nicht in der Lage, eine Lösung zu finden. Ich habe mich gefragt, ob jemand mit einem ähnlichen Problem konfrontiert ist und eine Lösung dafür gefunden hat.

Unten ist mein Code-Schnipsel. Bisher war alles nur darauf angelegt, meine Daten in die für die Tabellierung gewünschte Form zu bringen.

from IPython.display import display 
from ipywidgets import widgets, interactive 
v = interactive(by_q, quarter=(['q1y2015', 'q2y2015', 'q3y2015', 'q4y2015']), days=(1, 180)) 
display(v) 
+0

Können Sie Ihre Funktion 'by_q' hinzufügen, um ein vollständiges Beispiel zu erstellen? Normalerweise müssen Sie einer Variable nicht einmal 'interaktiv' zuweisen und dann 'display (v)' aufrufen. – roadrunner66

+0

Ich hatte vor ein paar Tagen denselben seltsamen Fehler mit 'interact' ... leider verschwand es so mysteriös wie es schien. Ich habe keine Lösung dafür. Vielleicht versuchen Sie '% reset -f' oben auf Ihrem Notebook? – nluigi

+0

@nluigi Ich bin mir nicht sicher, ob es einige Paketkonflikte gab, die ich habe, da ich Plot.ly auf demselben Notebook erkunde. Meine derzeitige, sehr ineffiziente Art, mit dieser Situation umzugehen, besteht darin, die Zellen in ein neues Notizbuch zu kopieren, und der Schieberegler würde wieder auf dem neuen Notebook funktionieren. Da ich versuche, mich schnell mit meinen Daten zu bewegen, habe ich leider nicht viel Zeit, um die Situation jetzt zu debuggen. Ich werde deinen Vorschlag versuchen, wenn es wieder auftaucht. Vielen Dank! –

Antwort

44

Mit der neuen Version von ipywidgets, lief ich in dieses Problem, aber dann fand ich auf their github readme, dass Sie jetzt

pip install ipywidgets 
folgen müssen

mit

jupyter nbextension enable --py widgetsnbextension 

Das löste das Problem für mich.

1

Ich denke plot.ly importiert eine Funktion display genannt, die die Funktion display von ipython außer Kraft setzt. Versuchen Sie, die Reihenfolge der Importe zu ändern oder einfach importieren Sie die Funktion unter einem anderen Namen

+0

Hi @nluigi, am Ende konnten Sie Ihr Problem lösen? Ich musste plot.ly in mein ipython-Notizbuch aufnehmen. Selbst wenn ich die 'display()' Funktionen lösche, den Refactoring meines Codes wie empfohlen, sind meine ipython Notebook Slider heute kaputt gegangen. Ich habe mein gesamtes Skript in ein anderes Notizbuch kopiert, und meine Schieberegler funktionierten wieder. Ein bisschen Aufwand, aber zumindest löst es mein aktuelles Problem. Ich bin mir nicht sicher, ob es ein Cache-Problem oder irgendetwas in meinem Browser ist. Ich verwende ein MacBook Pro und meine Notebooks in Chrome. –

+0

@CliffChew - nein Entschuldigung, ich habe versucht, das ähnliche Problem zu reproduzieren, das ich hatte, aber nicht konnte. Es scheint jedoch kein Cache-Problem zu sein. Haben Sie versucht, die Autoren von plot.ly zu kontaktieren und nach diesem Fehler zu fragen? – nluigi

+0

@nuligi Vielen Dank für Ihre Antwort! Momentan ist die Situation für mich noch nicht kritisch, da ich zu anderen Aspekten meiner Arbeit übergehen muss. Meine "kopierende" Methode ist, obwohl sie umständlich ist, eine Zwischenlösung, mit der ich jetzt leben kann. Ich werde vielleicht später etwas darüber nachdenken und werde es hier aktualisieren, wenn ich Fortschritte dabei habe. –

1

Könnte ein dummer Fehler von mir gewesen sein, aber wenn Sie virtuelle Umgebungen verwenden, denken Sie nur daran, was von wo aus läuft.

Sie können Jupyter bei Bedarf jederzeit in Ihrer aktuellen Umgebung ausführen oder ein Root-Env haben, von dem aus Sie den Jupyter immer für alle Ihre Umgebungen starten.

Für den letzten Fall müssen Sie nbextension für den Jupyter aktivieren, den Sie tatsächlich ausführen, anstatt den Befehl fälschlicherweise in Ihrer aktiven Umgebung auszuführen.

+1

das hat mein Problem gelöst !! danke dir: D: D – jerpint