/ / Jupyter findet keine Python-Klasse - Python, Jupyter, Jupyter-Notebook

Jupyter findet keine Python-Klasse - Python, Jupiter, Jupiter-Notizbuch

Sehr grundlegende Jupyter-Frage:

Ich habe zwei Zellen in einem Jupyter-Notizbuch. Keiner hat einen Namen (keiner heißt Perceptron.py - ich weiß nicht, wie ich sie benennen soll)

Man fängt so an:

class Perceptron(object):

und der andere macht das:

from Perceptron import Perceptron

und ich bekomme diesen Fehler:

ImportError: No module named Perceptron

Natürlich habe ich die erste Zelle nicht "Perceptron.py" genannt, aber ich verstehe nicht, wie das geht. Oder das Verzeichnis ist nicht Teil des Pfads für Klassen. Wie lässt sich das am besten beheben?

Antworten:

3 für die Antwort № 1

Ihr Kommentar zum "Benennen" der Zellen legt nahe, dass Sie Zellen als separate Dateien betrachten. Jupyter-Notebookzellen sind jedoch keine separaten Dateien - sie sind Teil derselben Datei.

Wenn Sie ein Python-Skript schreiben, deklarieren Sie Ihre Klasse und führen Ihre Klasse dann folgendermaßen aus:

class Foo:
def __init__(self):
self.Bar = "win!"

foo = Foo()
print(foo.Bar)

Notizbücher sind gleich, aber Sie können den Code in verschiedene Zellen unterteilen, um Ihren Code zu organisieren:

# Cell 1
class Foo:
def __init__(self):
self.Bar = "win!"

und

# Cell 2
foo = Foo()
print(foo.Bar)

Das Aufteilen von Code in Zellen ermöglicht es Ihnen auchFühren Sie den Code in einer anderen Reihenfolge aus als in einem regulären Skript. Wenn Sie also nicht den Code ausgeführt haben, der die Perceptron-Klasse deklariert, können Sie keine Perceptron-Instanz instanziieren.

Ein anderer Ansatz zum Debuggen Ihres Problems ist:Füge die Zellen zusammen, die sich schlecht zu verhalten scheinen. Es ist nichts Falsches daran, den gesamten Code in dieselbe Zelle zu stellen. Wenn Ihr Code nicht alle zusammen funktioniert, stimmt etwas nicht mit Ihrem Code. Sobald Sie ihn zum Laufen gebracht haben, können Sie den Code in separate Zellen aufteilen.


2 für die Antwort № 2

Da du keine Datei mit dem Namen "" hast Perceptron.py, du solltest kein import Aussage dafür. Zellen in Jupyter-Notizbüchern können Variablen voneinander verwenden. Alles, was Sie tun müssen, ist auf eine Zelle zu klicken und zu drücken shift und enter um es zu "rennen".

Wenn Sie eine Klasse (wie Perceptron) in dieser Zelle haben, sollte sie von jeder anderen Zelle im gleichen Notizbuch aus zugänglich sein.

In einer anderen Zelle sollten Sie nur in der Lage sein:

foo = Perceptron()