Du bist nicht angemeldet.

#1 01.03.2017 01:50:49

ArchArrow
Mitglied

name "gi" is not defined - Obwohl Alles installiert ist

Hallo.

Ich wollte gerade ein Python + pygobjects Tutorial durchmachen, leider funktioniert aber etwas mit meiner pygobjects Installation nicht.

Der Quellcode lautet ganz einfach:

from gi.repository import Gtk
gi.require_version("Gtk", "3.0")
window = Gtk.Window()

Es kommt die Fehlermeldung: NameError: name 'gi' is not defined

Ein "pip freeze" zeigt allerdings: pygobject==3.22.0

Ein "which python" zeigt: /usr/bin/python -> welches ein Python3.6 startet.

Eigentlich Alles richtig. Wieso klappt es dennoch nich? Was habe ich übersehen?

Offline

#2 01.03.2017 02:04:06

Schard-nologin
Gast

Re: name "gi" is not defined - Obwohl Alles installiert ist

ArchArrow schrieb:

from gi.repository import Gtk
gi.require_version("Gtk", "3.0")
window = Gtk.Window()

Zum Ersten gehört es zu der feinen Art, Code-Tags zu benutzen.
Das sähe so aus:

from gi.repository import Gtk
gi.require_version("Gtk", "3.0")
window = Gtk.Window()

Zum Zweiten importierst du in der erstern Code-Zeile aus dem Paket gi und dem Paket oder dem Modul repository das Paket, Modul, die Klasse, Funktion oder die Variable Gtk.
Wie soll ergo in der zweiten Code-Zeile der Name gi definiert sein?
Entweder ist das Tutorial, welchen du ja für dich im Geheimen behältst fehlerhaft, oder bist aufgrund fortgeschrittener Stunde einfach unkonzentriert.

#3 01.03.2017 02:47:52

ArchArrow
Mitglied

Re: name "gi" is not defined - Obwohl Alles installiert ist

Hallo.

1. Code Tags habe ich keine gefunden. Dass Sie innerhalb des BBCodes sind habe ich aber jetzt gelernt. :-)
2. Inzwischen habe ich es durch experimenteiren hinbekommen. Und zwar so:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

Wenn ich mit "import gi" schon ALLES aus "gi" importiere. Wieso muss ich dann noch "from gi.repository import Gtk" importieren?
Habe ich mit "import gi" gar nicht ALLES aus "gi" importiert?

In der offiziellen Doku steht es auch genau so, verstehen tue ich es aber trotzdem nicht. :-(

Offline

#4 01.03.2017 09:51:32

Schard-nologin
Gast

Re: name "gi" is not defined - Obwohl Alles installiert ist

Nö. Du hast mit import gi nur Das Paket gi importiert. Die entsprechenden Subkomponenten kannst du dann von da aus über dessen Namespace erreichen.
Der zweite Import ist auch nicht nötig, wenn du statt Gtk dann gi.repository.Gtk benutzt.

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums