Server Raspberry Pi 4

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Python
    import logging
    import os
    import time as pytime
    import schedule
    import subprocess
    from newsapi import NewsApiClient
    from pytube import YouTube
    from telegram.ext import Updater, CommandHandler, ConversationHandler, MessageHandler, Filters
    from datetime import time as datetime_time
    from telegram import ParseMode
  • Die Schritte sind: venv anlegen, rein wechseln, aktivieren, im venv via pip die benötigten Module installieren, Python-Programm rein kopieren, laufen lassen, glücklich sein.


    Das sollte so funktionieren, alles im Terminal ausführen:


    Code
    cd ~
    python3 -m venv telegram_venv
    cd telegram_venv
    source bin/activate
    pip3 install newsapi
    pip3 install pytube
    pip3 install python-telegram

    Bei Telegram Client musst du mal checken, ob das der ist, den du verwendest.

    Und dann natürlich noch dein Programm rein kopieren und laufen lassen.


    Die Zeile from datetime import time as datetime_time ist extrem schräg. Du importierst explizit nur time aus datetime, nennst es aber datetime_time. Das ist verwirrend.


    Gruß, noisefloor

  • Vielen Dank, das hat funktioniert. Das mit dem datetime liegt daran, dass ich ChatGPT genutzt habe um einen Fehler zu korrigieren, hatte da noch eine andere Funktion drin. Hatte das nur noch nicht wieder geändert. Mega stark, freue mich! :)

  • Post by lianus ().

    This post was deleted by the author themselves ().
  • Es ist wirklich frustrierend, ich komme mir langsam echt dämlich vor.


    Die von dir genannten Module konnte ich alle installieren, die anderen verlinkten leider nicht. Ich weiß auch nicht wieso ich manche per Befehl installieren muss (wie du es geschrieben hast) und manche per sudo Befehl. Ich bin mittlerweile bei den vielen Befehlen einfach nur noch durcheinander.

  • Was meinst du mit "per sudo"? sudo brauchst du nur, wenn du via apt über die Paketverwaltung systemweit installierst. pip pro Benutzer im venv.


    sudo hat auch nichts mit Python zu tun, sondern was mit dem Rechte-Konzept von Linux. Das ist halt anders umgesetzt als unter Windows.


    Gruß, noisefloor

  • Vieles ist von Haus aus schon installiert und muss nicht nochmals installiert werden.


    Der Rest lässt sich schlecht in wenige Worte fassen...

    apt ist der Paketmanager für Installationen ins Linux-System, deshalb braucht man root-Rechte und verwendet dafür sudo davor. Manchmal installiert man damit auch Pythonmodule systemweit, aber das ist eher die Ausnahme. Systemweit bedeutet für alle User auf dem System.


    Wie ich weiter oben bereits schrieb, werden Module für Python eher mit pip installiert. Verwendet man sudo davor (was man nicht machen sollte), dann werden diese Module auch systemweit installiert statt ohne sudo davor nur für den User lianus, mit dem Du unterwegs bist.


    Ein venv geht noch einen Schritt weiter, was die Systemsicherheit angeht. Hier wird im Bereich des Users eine virtuelle Umgebung geschaffen, die man einfach koplett löschen könnte, ohne das man weder das System, noch die Umgebung des Users zerstören würde. Das ganze Theater ist nur dazu da nicht versehentlich oder absichtlich sein System zu zerstören.


    Von unsicheren zu sicheren Python-(Modul-(Installationen)) ist: sudo verwenden > als User > venv



    //Edit

    Bin wieder zu spät und dann noch als halben Roman verfasst. :S

  • Danke für die Erklärungen. Das Problem, dass ich gerade habe ist, dass er mir sagt dass die Paketquellen nicht korrekt sind. Ich hab genau die Namen verwendet, die im Skript hinterlegt sind.

  • Linux-Distributionen nutzen oft auch Python-Systemtools, bieten einen vorinstallierten Python-Interpreter an und um Katastrophen zu verhindern, wird das Installieren von Python-Paketen außerhalb einer virtuellen Umgebung (venv) unterbunden.


    Ansonsten besteht die Möglichkeit, durch die Installation falscher Pakete sein System durcheinanderzubringen.


    Das ist erst kürzlich eingeführt worden und davor konnte man einfach als User Python-Pakete installieren, dass aber immer wieder zu Problemen geführt hat.

    Noch viel schlimmer ist es pip mit sudo zu verwenden. Dann fängt man an, Python-Pakete systemweit zu installieren, die nicht durch die Distribution aktualisiert werden.


    Wer so arbeitet, hat am Ende ein Durcheinander.

  • Langsam kommt Licht ins dunkle. Verstehe wofür das mit venv eingeführt wurde, macht auch alles sinn. Ich muss mich morgen nochmal genauer einlesen und schauen was ich mache. Find es so sehr umständlich muss ich sagen.

  • Dann hast Du  --system-site-packages, wie noisi im Beitrag #39 schrieb übersehen, bzw. war das auch in dem Moment zu viel Info für Dich. Wobei os eigentlich ein Standardmodul und immer verfügbar sein sollte. :conf:


    Bei schedule ist das schon etwas anderes. Das kannst Du aber auch noch mit pip3 install schedule im venv installieren, wie die anderen Module auch..

  • Hallo,


    bitte _immer_ die Fehlermeldung - und zwar die komplette, nicht nur die letzte Zeile! - hier rein kopieren.


    Das Thema "funktioniert nicht -> ist keine brauchbare Fehlerbeschreibung" hatten wir schon.


    Gruß, noisefloor