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?
YouTube API
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.
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.
-
- User
- Beiträge: 6
- Registriert: Samstag 15. Januar 2022, 21:15
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
Anschließend habe ich folgenden Python-Befehl geschrieben:
Code: Alles auswählen
from googleapiclient.discovery import build
Weiß jemand zufällig, wo mein Fehler liegt?
PS: könnte ein Moderator vlt. meinen ersten Post hier bitte löschen?
-
- User
- Beiträge: 6
- Registriert: Samstag 15. Januar 2022, 21:15
Ä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?
@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.
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.
-
- User
- Beiträge: 6
- Registriert: Samstag 15. Januar 2022, 21:15
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.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.
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''
Zuletzt geändert von Science_Albrecht am Sonntag 16. Januar 2022, 17:01, insgesamt 2-mal geändert.
Ich kann dir sagen, dass es hier problemlos funktioniert.
Unter Windows:
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"
-
- User
- Beiträge: 6
- Registriert: Samstag 15. Januar 2022, 21:15
Ist das ein Befehl für das Terminal oder das Python-File?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"
-
- User
- Beiträge: 6
- Registriert: Samstag 15. Januar 2022, 21:15
ah ok danke, verstehe. Also folgenden Befehl habe ich noch nie verwendet:
Code: Alles auswählen
> python -c "import googleapiclient"