Frage zu "IndentationError: expected an indented block"

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Pit55
User
Beiträge: 6
Registriert: Freitag 13. Dezember 2019, 17:19

Der Fehler kommt in einem ganz kurzen Programm. Mir ist klar, dass es um den Einschub geht.

Hier der Code:

Code: Alles auswählen

print("This is my first Docker image.")
print("It prints the first 50 Fibonacci numbers.")
a=0;b=1
for i in range(1,51):
    print("Fibonacci %i: %i" % (i,b))
    a,b=b,a+b
Wenn ich das Programm in einem Compiler direkt im Browser ausführe, läuft es wunderbar. Eigentlich ist ja kein Fehler drin. Ich will es aber in Linux über das Terminal ausführen. Es soll als Docker Image laufen.
Das gebe ich als Kommando ein:
...$ docker run fibonacci
Der Fehler ist dann:

Bild


Wenn ich die Python Datei anzeigen lasse mit less fibo.py, wird sie mir richtig angezeigt.

Code: Alles auswählen

rint("This is my first Docker image.")
print("It prints the first 50 Fibonacci numbers.")
a=0;b=1
for i in range(1,51):
    print("Fibonacci %i: %i" % (i,b))
    a,b=b,a+b

(END)
Kann mir da einer helfen? Das ist echt komisch oder?
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich habe leider keinen Zugriff auf Dein Home-Verzeichnis: /home/sven/Pictures/Screenshot%20from%202021-05-17%2015-56-45.png
Statt eines Bildes poste auch den Konsoleninhalt als Text.
Pit55
User
Beiträge: 6
Registriert: Freitag 13. Dezember 2019, 17:19

Danke für die schnelle Antwort. Die Konsolenausgabe lautet:
.
.......................$ docker run fibonacci
File "fibo.py", line 5
print("Fibonacci %i: %i" % (i,b))
^
IndentationError: expected an indented block


Wenn ich diese Python Datei ausführe per : python fibo.py -> dann läuft es wunderbar.
Irgendetwas könnte vielleicht in Zusammenhang mit dem Dockerfile sein.

Ich habe einen Ordner namens: MyFirstImage und darin habe ich eben diese beiden Dateien (Dockerfile und fibo.py). Mit docker run fibonacci will ich es einfach nur ausführen. Sudo docker run fibonacci bringt das gleiche.
Pit55
User
Beiträge: 6
Registriert: Freitag 13. Dezember 2019, 17:19

so sieht bei mir Dockerfile aus:

#A lightweight Python image as parent
FROM python:3.7-alpine
#Set the working directory to /dirInContainer
WORKDIR /dirInContainer
#Copy the python app fibo.py in working directory
COPY fibo.py ./
#Execute the python program fibo.py
CMD ["python","fibo.py"]
Pit55
User
Beiträge: 6
Registriert: Freitag 13. Dezember 2019, 17:19

Habe es hinbekommen. Nach den Änderungen im .py file habe ich zwar abgespeichert, man muss aber zusätzlich mit docker build fibonacci das Image neu erstellen. Dann geht es.
Antworten