Seite 1 von 1

YouTube API

Verfasst: Samstag 15. Januar 2022, 21:26
von Science_Albrecht
Hey,

ich bin neu beim Programmieren und habe mir folgendes Tutorial angeschaut https://www.youtube.com/watch?v=th5_9woFJmk&t=1s, um die API von YouTube mittels Python anzuzapfen. Demgemäß sollte ich u.a. ein virtual Envoirement erstellen (warum auch immer) im Terminal von meinem MacOS, daher habe ich folgende Zeilen in mein Terminal getippt:

"python3 -m venv project_env
source project_env/bin/activate
pip install google-api-python-client"

Dann hat mein Terminal "Collecting google-api-python-client" ausgelesen und hat den Client heruntergeladen.

Anschließend habe ich folgenden Python-Befehl geschrieben:

"from googleapiclient.discovery import build
api_key = 'AIzaSyC8UDqW8CouT5AhX3kPKFeFE8vFxUavImg'
youtube = build('youtube', 'v3', developerKey=api_key)
request = youtube.channels().list(
part='statistics',
forUsername='sentdex'
)
response = request.execute()
print(response)"

Aber es kommt folgender Error: "ModuleNotFoundError: No module named 'googleapipythonclient'"

Weiß jemand zufällig, wo mein Fehler liegt?

Re: YouTube API

Verfasst: Samstag 15. Januar 2022, 22:04
von sparrow
Code bite imer in Code-Tags posten.
Die werden eingefügt, wenn man den </> Button im Vollstädnigen Editor klickt.

Deine Fehlermeldung passt nicht zum Code.
Denn das Modul, das er nicht findet, ist nicht das, was in deinem Code steht.

Den API-Key solltest du wahrscheinlich nicht veröffenltichen.

Re: YouTube API

Verfasst: Samstag 15. Januar 2022, 22:11
von Science_Albrecht
sparrow hat geschrieben: Samstag 15. Januar 2022, 22:04 Deine Fehlermeldung passt nicht zum Code. [...]
Ah ja sorry, ich hatte kurz einen anderen Code ausgeführt. Habe den Fehler berichtigt. Jetzt passt der Fehler zum Code.

Ferner hat die Api bewusste Fehler drin, ist also nicht verwendbar. Ansonsten hier nochmal mit der richtigen Formattierung:

ich bin neu beim Programmieren und habe mir folgendes Tutorial angeschaut https://www.youtube.com/watch?v=th5_9woFJmk&t=1s, um die API von YouTube mittels Python anzuzapfen. Demgemäß sollte ich u.a. ein virtual Envoirement erstellen (warum auch immer) im Terminal von meinem MacOS, daher habe ich folgende Zeilen in mein Terminal getippt:

Code: Alles auswählen

python3 -m venv project_env
source project_env/bin/activate
pip install google-api-python-client
Dann hat mein Terminal "Collecting google-api-python-client" ausgelesen und hat den Client heruntergeladen.

Anschließend habe ich folgenden Python-Befehl geschrieben:

Code: Alles auswählen

from googleapiclient.discovery import build
Aber es kommt folgender Error: ModuleNotFoundError: No module named 'googleapiclient''

Weiß jemand zufällig, wo mein Fehler liegt?

PS: könnte ein Moderator vlt. meinen ersten Post hier bitte löschen?

Re: YouTube API

Verfasst: Samstag 15. Januar 2022, 22:20
von sparrow
Hast du das virtuellen Environment jeweils vor dem installieren und dem Starten des Programms aktiviert?

Re: YouTube API

Verfasst: Samstag 15. Januar 2022, 22:37
von Science_Albrecht
sparrow hat geschrieben: Samstag 15. Januar 2022, 22:20 Hast du das virtuellen Environment jeweils vor dem installieren und dem Starten des Programms aktiviert?
Ähm also vor dem Starten des Programms ja, eben nochmal getestet. Aber vor dem Installieren: Nein. Sollte ich das Program nochmal de- und dann neuinstallieren?

Re: YouTube API

Verfasst: Samstag 15. Januar 2022, 22:55
von rogerb
@Science_Albrecht,

ein virtuelles environment verhält sich eigentlich so ähnlich wie eine separate Python Installation. Nur das man es mit

> source project_env/bin/activate

aktivieren und mit

> deactivate

deaktivieren kann.

Installiert man zusätzliche Pakete werden diese auch nur in dem Paket benutzbar sein, welches gerade aktiv ist.
Falls du das environment bei der Installation nicht aktiviert hattest, sind die Pakete in deine Python-Basis installation installiert worden.
Daher am besten noch mal die Pakete deinstallieren.
Das environment aktivieren und die Pakete nochmal neu installieren.

Das environment muss dann auch bei der Ausführung des Programms aktiviert sein.

Der Sinn dahinter ist, dass Pakete manchmal Abhängigkeiten zu bestimmten Versionen anderer Pakete haben. Hat man alle Pakete in einem environment installiert, kann es schonmal passieren, dass gleich zwei oder mehrere Versionen eines anderen Pakets benötigt werden. Das ist natürlich nicht möglich. Daher sollte man für jedes Projekt ein eigenständiges sauber getrenntes environment anlegen.

Re: YouTube API

Verfasst: Sonntag 16. Januar 2022, 16:40
von Science_Albrecht
rogerb hat geschrieben: Samstag 15. Januar 2022, 22:55
Installiert man zusätzliche Pakete werden diese auch nur in dem Paket benutzbar sein, welches gerade aktiv ist.
Falls du das environment bei der Installation nicht aktiviert hattest, sind die Pakete in deine Python-Basis installation installiert worden.
Daher am besten noch mal die Pakete deinstallieren.
Das environment aktivieren und die Pakete nochmal neu installieren.

Das environment muss dann auch bei der Ausführung des Programms aktiviert sein.
Hey, vielen Dank für deine ausführliche Antwort. Allerdings habe ich keine Pakete von Python installiert außer über das Terminal, als die Virtual Environment bereits aktiv war.


Das war die genaue Abfolge meiner Schritte:

  • Ich habe Python installiert.
  • ich habe Sublime Text installiert.
  • Ich habe eine Virtual Environment im Terminal mithilfe folgendem Code erstellt:

    Code: Alles auswählen

    python3 -m venv project_env
  • Ich habe diese Virtual Environment mithilfe des folgenden Befehls aktiviert:

    Code: Alles auswählen

    source project_env/bin/activate
  • Ich habe über das Terminal (und innerhalb der aktiven Virtual Environment) den folgenden Befehl für das Herunterladen der Packages geschrieben:

    Code: Alles auswählen

    pip install google-api-python-client
  • Dann habe ich in "Sublime Text" den folgenden Python-Befehl geschrieben:

    Code: Alles auswählen

    from googleapiclient.discovery import build
  • Dann kam der Fehler: ModuleNotFoundError: No module named 'googleapiclient''
Von der Abfolge meiner Schritte kann ich nicht erkennen, dass ich Pakete außerhalb der Environment erstellt habe. Oder was genau würdest du an der Abfolge meiner Schritte ändern?

Re: YouTube API

Verfasst: Sonntag 16. Januar 2022, 16:50
von sparrow
Ich kann dir sagen, dass es hier problemlos funktioniert.

Unter Windows:

Code: Alles auswählen

> python -m venv testenv
> testenv\scripts\activate
> python -m pip install google-api-python-client
> python -c "import googleapiclient"

Re: YouTube API

Verfasst: Sonntag 16. Januar 2022, 16:52
von Science_Albrecht
sparrow hat geschrieben: Sonntag 16. Januar 2022, 16:50 Ich kann dir sagen, dass es hier problemlos funktioniert.

Unter Windows:

Code: Alles auswählen

> python -m venv testenv
> testenv\scripts\activate
> python -m pip install google-api-python-client
> python -c "import googleapiclient"
Ist das ein Befehl für das Terminal oder das Python-File?

Re: YouTube API

Verfasst: Sonntag 16. Januar 2022, 16:59
von sparrow
Für das Terminal.
Und die führenden > gehöhren nicht zum Befehl, sondern sollen genau das klar machen.

Re: YouTube API

Verfasst: Sonntag 16. Januar 2022, 17:03
von Science_Albrecht
sparrow hat geschrieben: Sonntag 16. Januar 2022, 16:59 Für das Terminal.
Und die führenden > gehöhren nicht zum Befehl, sondern sollen genau das klar machen.
ah ok danke, verstehe. Also folgenden Befehl habe ich noch nie verwendet:

Code: Alles auswählen

> python -c "import googleapiclient"
Funktioniert der auch genau so auf Apples OS?

Re: YouTube API

Verfasst: Sonntag 16. Januar 2022, 17:21
von sparrow
Der funktioniert überall.
Schau mal, was er macht.