vinc3PO / ebayKleinanzeigenAlert

Telegram Alert for ebay kleinanzeigen posts
MIT License
57 stars 15 forks source link

Probleme mit python und der crontab #21

Open hardtech87 opened 1 year ago

hardtech87 commented 1 year ago

Hi.

ich versuche schon einige stunden das ganz zum laufen zu bringen, aber ohne Erfolg. wenn ich genau nach anleitung gehe, ist beim befehl python -m ebAlert schluss. da kommt eine Fehlermeldung. Diese konnte ich gestern nach viel probieren durch "python3" umgehen. Dann wird gezeigt, das man nur noch ebAlert eingibt ohne" python -m". Das geht bei mir nicht mehr. wenn ich die komplette Zeile schreibe, kann ich zumindest dann einen Link erstellen und der wird auch einmal ausgelesen. aber dann gehts wieder im crontab nicht weiter. das läuft einfach nicht.

pi@raspberrypi:~/ebayKleinanzeigenAlert $ ebAlert Traceback (most recent call last): File "/home/pi/.local/bin/ebAlert", line 6, in from ebAlert.main import cli File "/home/pi/.local/lib/python2.7/site-packages/ebAlert/init.py", line 2, in from ebAlert.core.config import settings File "/home/pi/.local/lib/python2.7/site-packages/ebAlert/core/config.py", line 9 TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&""" ^ SyntaxError: invalid syntax

meine Bashrc sieht so aus

export PATH="/home/pi/.local/bin:$PATH" alias python3=python3.7

crontba /1 1-24 /usr/bin/python3 /home/pi/ebayKleinanzeigenAlert/python3 -m ebAlert start > /home/$

hardtech87 commented 1 year ago

so das mit dem python hab ich gelöst. ich halte ne alte pip version. und nachdem ich die aktualisiert habe musste ich erneut pip install . ausführen. jetzt läuft es bis auf die crontab . er erstellt eine datei aber es steht nix drin

dandud100 commented 1 year ago

TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&""" ^ SyntaxError: invalid syntax

Schau Mal, das sieht für mich so aus als hättest du einen Fehler beim reinkopieren deiner ChatID oder TelegramToken gemacht. Beispielsweise ein " zu viel oder sowas.

hardtech87 commented 1 year ago

der Fehler kommt nur weil mein python und pip nicht zusammen passten. jetz läuft alles wunderbar. wenn ich ebAlert manuell starte, bekomm ich sogar angebote aufs handy. aber nicht per crontab, es wird nur die datei erstellt aber die ist leer

dandud100 commented 1 year ago

/1 1-24 /usr/bin/python3 /home/pi/ebayKleinanzeigenAlert/python3 -m ebAlert start > /home/$

Das ist aufjedenfall falsch, das siehst du wenn du es unabhängig vom Crontab in die Kommandozeile eingeben würdest. Versuch stattdessen mal folgendes: /usr/bin/python /home/pi/ebayKleinanzeigenAlert/ebAlert start unabhängig vom Crontab erstmal.

Wenn das nicht klappt: /usr/bin/python3 /home/pi/ebayKleinanzeigenAlert/ebAlert start

hardtech87 commented 1 year ago

geht beides nicht

dandud100 commented 1 year ago

Screenshot_20221212-162040_JuiceSSH

Welche Fehlermeldung kommt denn bei dir?

hardtech87 commented 1 year ago

ne geht nicht. wenn ich in den Ordner EbayKleinanzeigenAlert wechsel und nur ebAlert eingebe, geht es. sogar im root Verzeichnis kann ich das eingeben und es geht. aber so alles zusammen nicht. bei which python kommt /usr/bin/python

hardtech87 commented 1 year ago

pi@raspberrypi:~ $ /usr/bin/python3 /home/pi/ebayKleinanzeigenAlert/ebAlert start Traceback (most recent call last): File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "/usr/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/pi/ebayKleinanzeigenAlert/ebAlert/main.py", line 1, in from ebAlert import main ModuleNotFoundError: No module named 'ebAlert'

hardtech87 commented 1 year ago

pi@raspberrypi:~ $ /usr/bin/python /home/pi/ebayKleinanzeigenAlert/ebAlert start Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main "main", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/home/pi/ebayKleinanzeigenAlert/ebAlert/main.py", line 1, in from ebAlert import main File "/home/pi/.local/lib/python2.7/site-packages/ebAlert/init.py", line 2, in from ebAlert.core.config import settings File "/home/pi/.local/lib/python2.7/site-packages/ebAlert/core/config.py", line 9 TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&""" ^ SyntaxError: invalid syntax

dandud100 commented 1 year ago

Ich glaube du hast es irgendwie doppelt bei dir installiert. Die Version welche er im Path hat ist die fehlerhafte.

Theoretisch sollte dieser crontab bei dir klappen. */5 6-23 * * * python -m ebAlert start > /home/pi/out.txt

hardtech87 commented 1 year ago

nur eine Datei ohne Inhalt ich gebs gleich auf

hardtech87 commented 1 year ago

TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&"""

sollen diese 3 " dahinten stehen? habe 2 weg gemacht aber der aktualisiert das nicht

dandud100 commented 1 year ago

TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&"""

sollen diese 3 " dahinten stehen? habe 2 weg gemacht aber der aktualisiert das nicht

Wie schon oben beschrieben, könntest du in deiner config Datei einen Fehler gemacht haben. Sobald du diesen behoben hast musst du pip install . erneut ausführen damit er übernommen wird.

hardtech87 commented 1 year ago

ahhh ok

ok ändert nichts werde noch einmal alles neu aufsetzen und ein letztes mal probieren. auf jedenfall muss ich voher pip aktualisieren sonst geht alles wieder nicht

dandud100 commented 1 year ago

ahhh ok

So muss sie aussehen: (habe meine Daten anonymisiert)

import os
import logging

class Settings:
    TOKEN = os.environ.get("TOKEN") or "5xxxxxxx120:AAxxxxxxxxTE"
    CHAT_ID = os.environ.get("CHAT_ID") or "2xxxxxxx5"
    FILE_LOCATION = os.path.join(os.path.expanduser("~"), "ebayklein.db")
    TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&"""
    LOGGING = os.environ.get("LOGGING") or logging.ERROR
    URL_BASE = "https://www.ebay-kleinanzeigen.de"

settings = Settings()
dandud100 commented 1 year ago

ahhh ok

ok ändert nichts werde noch einmal alles neu aufsetzen und ein letztes mal probieren. auf jedenfall muss ich voher pip aktualisieren sonst geht alles wieder nicht

Ansonsten gib doch mal pip list ein, wenn da ebayAlert ist, dann pip uninstall ebayAlert und dann wieder installieren mit pip install .

hardtech87 commented 1 year ago

sieht genau gleich aus

import os import logging

class Settings: TOKEN = os.environ.get("TOKEN") or "5xxxx9:Axxxxxxxhg" CHAT_ID = os.environ.get("CHAT_ID") or "5xxxxxxx7" FILE_LOCATION = os.path.join(os.path.expanduser("~"), "ebayklein.db") TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&""" LOGGING = os.environ.get("LOGGING") or logging.ERROR URL_BASE = "https://www.ebay-kleinanzeigen.de"

settings = Settings()

hardtech87 commented 1 year ago

Ansonsten gib doch mal pip list ein, wenn da ebayAlert ist, dann pip uninstall ebayAlert und dann wieder installieren mit pip install .

aber im ebayKleinanzeigenAlert ordner?

dandud100 commented 1 year ago

Genau, wie im Video.

hardtech87 commented 1 year ago

Requirement already satisfied: soupsieve>1.2 in /home/pi/.local/lib/python3.8/site-packages (from beautifulsoup4->bs4>=0.0.1->ebayAlert==1.3) (2.3.2.post1) Installing collected packages: ebayAlert DEPRECATION: ebayAlert is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559 Running setup.py install for ebayAlert ... done Successfully installed ebayAlert-1.3

hardtech87 commented 1 year ago

pi@raspberrypi:~/ebayKleinanzeigenAlert $ /usr/bin/python /home/pi/ebayKleinanzeigenAlert/ebAlert Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main "main", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/home/pi/ebayKleinanzeigenAlert/ebAlert/main.py", line 1, in from ebAlert import main File "/home/pi/.local/lib/python2.7/site-packages/ebAlert/init.py", line 2, in from ebAlert.core.config import settings File "/home/pi/.local/lib/python2.7/site-packages/ebAlert/core/config.py", line 9 TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&""" ^ SyntaxError: invalid syntax

hardtech87 commented 1 year ago

nur ebAlert funktioniert wieder

dandud100 commented 1 year ago

Jo, wie befürchtet hast du ebAlert doppelt installiert. Einmal für python2.7 mit fehler in der config und einmal funktionierend auf python3.8

Mach Mal sudo nano /lib/python2.7/site-packages/ebAlert/core/config.py siehst du dort die config Datei?

hardtech87 commented 1 year ago

reparierbar? oder neu aufsetzen

verzeichnis existiert nicht

dandud100 commented 1 year ago

reparierbar? oder neu aufsetzen

verzeichnis existiert nicht

Können es versuchen. pip3.6 uninstall ebayAlert

hardtech87 commented 1 year ago

pi@raspberrypi:~/ebayKleinanzeigenAlert $ pip3 uninstall ebayAlert Found existing installation: ebayAlert 1.3 Uninstalling ebayAlert-1.3: Would remove: /home/pi/.local/bin/ebAlert /home/pi/.local/lib/python3.8/site-packages/ebAlert/* /home/pi/.local/lib/python3.8/site-packages/ebayAlert-1.3-py3.8.egg-info Proceed (Y/n)? y Successfully uninstalled ebayAlert-1.3

dandud100 commented 1 year ago

Sehr gut. Jetzt pip uninstall ebayAlert

Dann schauen ob ebayAlert weg ist: python3 -m pip list und python -m pip list

Wenn das dann erfolgt ist pip install . wie gewohnt.

hardtech87 commented 1 year ago

pi@raspberrypi:~ $ pip uninstall ebayAlert WARNING: Skipping ebayAlert as it is not installed.

hardtech87 commented 1 year ago

bei python -m pip list ist es noch da

dandud100 commented 1 year ago

Das ist schlecht, das muss noch raus. Das wird die fehlerhafte Installation sein.

hardtech87 commented 1 year ago

geht nicht zu löschen

dandud100 commented 1 year ago

geht nicht zu löschen

Dann müssen wir das manuell versuchen. Kannst du über FTP oder über die Console schauen ob unter /lib/python2.7/site-packages/ was drin ist?

pip show ebayAlert sollte dir den Pfad aufjedenfall geben.

hardtech87 commented 1 year ago

probier ich dann gleich , muss kurz mein sohn holen. ich melde mich.

ansonsten habe ich es aber wie beschrieben installiert, versteh nicht warum das so komisch ist

hardtech87 commented 1 year ago

pi@raspberrypi:~ $ pip show ebayAlert WARNING: Package(s) not found: ebayAlert

hardtech87 commented 1 year ago
Unbenannt
dandud100 commented 1 year ago

pi@raspberrypi:~ $ pip show ebayAlert WARNING: Package(s) not found: ebayAlert

Okay, das macht für mich jetzt auch keinen sinn mehr, du meintest doch es wäre bei pip list noch da. 🤔

Ah, das Bild hätte vor deinem Text sein müssen. Ja dann passt es doch und du könntest es mit pip install . wieder installieren.

dandud100 commented 1 year ago
Unbenannt

Hier löschst du die beiden Ordner mit ebAlert.

hardtech87 commented 1 year ago

habs gelöscht und dann im ebayKleinanzeigenAlert verzeichnis mit pip install . installiert.

jetzt zeigt mir python -m pip list und pyhton3 -m pip list einen ebayAlert ordner.

und bei pi@raspberrypi:~/ebayKleinanzeigenAlert $ pip show ebayAlert Name: ebayAlert Version: 1.3 Summary: UNKNOWN Home-page: UNKNOWN Author: UNKNOWN Author-email: UNKNOWN License: UNKNOWN Location: /home/pi/.local/lib/python3.8/site-packages Requires: bs4, click, requests, sqlalchemy Required-by:

und bei pi@raspberrypi:~/ebayKleinanzeigenAlert $ pip3 show ebayAlert Name: ebayAlert Version: 1.3 Summary: UNKNOWN Home-page: UNKNOWN Author: UNKNOWN Author-email: UNKNOWN License: UNKNOWN Location: /home/pi/.local/lib/python3.8/site-packages Requires: bs4, click, requests, sqlalchemy Required-by:

also beide bei python3.8

hardtech87 commented 1 year ago

pi@raspberrypi:~/ebayKleinanzeigenAlert $ python -m ebAlert Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 163, in _run_module_as_main mod_name, _Error) File "/usr/lib/python2.7/runpy.py", line 111, in _get_module_details import(mod_name) # Do not catch exceptions initializing package File "ebAlert/init.py", line 2, in from ebAlert.core.config import settings File "ebAlert/core/config.py", line 9 TELEGRAM_API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&parse_mode=HTML&""" ^ SyntaxError: invalid syntax

pi@raspberrypi:~/ebayKleinanzeigenAlert $ python3 -m ebAlert Usage: python -m ebAlert [OPTIONS] COMMAND [ARGS]...

Options: --help Show this message and exit.

Commands: links Add/Show/Remove URL from database. start Fetch new post and send telegramclass notification.

dandud100 commented 1 year ago

File "/usr/lib/python2.7/runpy.py"

Ich verstehe nicht warum da immernoch was mit Python2.7 ist.

dandud100 commented 1 year ago

Vielleicht ist es doch das beste du lädst dir das aktuelle Raspbian Lite Image runter und versuchst es von Grund auf nochmal. Bevor du startest dann halt direkt apt-get update und apt-get upgrade. Wenn es dann immernoch nicht klappt dann mache ich dir ein fertiges Image wenn du willst.

hardtech87 commented 1 year ago

das problem über das image läuft mein komplettes terrarium. und ich hab nur ein backup davon. das spiele ich immer ein um neu anzufangen. habe diesmal sogar update und upgrade gemacht, hab aber das gefühl das es das noch schlimmer macht.

der config code muss richtig sein, er funktioniert ja wenn ich es manuell starte

dandud100 commented 1 year ago

Geht denn mittlerweile eines hiervon?

/usr/bin/python /home/pi/ebayKleinanzeigenAlert/ebAlert start

/usr/bin/python3 /home/pi/ebayKleinanzeigenAlert/ebAlert start

hardtech87 commented 1 year ago

nein

dandud100 commented 1 year ago

nein

Dann weiß ich gerade nicht wie ich dir aus der Ferne noch helfen soll. Vielleicht weiß der Entwickler von dem Bot was hier der Fehler ist.

@vinc3PO can you help here?

dandud100 commented 1 year ago

das problem über das image läuft mein komplettes terrarium. und ich hab nur ein backup davon. das spiele ich immer ein um neu anzufangen. habe diesmal sogar update und upgrade gemacht, hab aber das gefühl das es das noch schlimmer macht.

Hast du denn eine zweite MicroSD Karte rumliegen um das auszuprobieren?

hardtech87 commented 1 year ago

Ich danke dir unheimlich für deine Mühen.

Es läuft. ich habe das Backup neu aufgespielt und von vorn begonnen und habe diesmal mit "pip3 install ." installiert. und die 3 hats gebracht, dadurch hat er es nicht bei python 2 und 3 rein installiert. Vielen Vielen Dank

hardtech87 commented 1 year ago

Eine Frage hab ich noch, in der out.txt steht nur einmal start der link und finish. is das korrekt oder muss jede suche da drin stehen?

dandud100 commented 1 year ago

Eine Frage hab ich noch, in der out.txt steht nur einmal start der link und finish. is das korrekt oder muss jede suche da drin stehen?

Ja, das ist richtig so. Schön, dass es nun funktioniert! 🎉