Github script startet nicht

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Nxiickx
User
Beiträge: 1
Registriert: Samstag 4. Januar 2025, 13:53

Hallo zusammen,

ich habe ein github script gefunden welches für mich sehr nützlich sein würde, allerdings bekomm ich das nicht zu laufen. Sobald ich wie in der Einleitung die beiden python scripte starte schließt sich das ganze sofort wieder. Kann mir da einer helfen und sagen was ich falsch mache? https://github.com/DustinReddit/GME-Swaps
Benutzeravatar
grubenfox
User
Beiträge: 601
Registriert: Freitag 2. Dezember 2022, 15:49

aus der verlinkten Doku:
Output

The script will filter the data and record the transactions related to GME on a daily basis in the specified output folder. There will also be a folder named processed that traces all transactions swap by swap.

After running correlate_swaps.py there is a file named correlated_swaps.csv that is all the swaps data correlated by "Progenitor ID". There is also a parquet dataset that is created in the output folder that contains all the swaps data for easier querying.
Liegt nach dem ausführen der Scripte denn irgendwas im output-Verzeichnis? Und ist das Verzeichnis 'processed' entstanden? Und die Datei 'correlated_swaps.csv'?
Benutzeravatar
sparrow
User
Beiträge: 4525
Registriert: Freitag 17. April 2009, 10:28

Und falls die Amtwort "nein" ist:
Wir startest du sie Scripte?
Shell/Kommandozeilenprogramme startet man auch in der Shell. Falls du versuchst das mit einem Doppelklick im Dateinanager zu starten, ist das falsch.
Sirius3
User
Beiträge: 18250
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich vermute mal, Du hast noch nicht alle benötigten Bibliotheken installiert.
Wenn Du das Programm von der Eingabeaufforderung startest erhältst Du eine entsprechende Fehlermeldung.
Auf den ersten Blick sind das mindestens pyarrow, pandas, numpy, requests und tqdm.
Benutzeravatar
__blackjack__
User
Beiträge: 13997
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dafür gibt's ja die `requirements.txt` und den Schritt 2, Punkt 2 in der Anleitung („Install the requirements“), der vor Punkt „4. Run the scripts“ kommt. 😇

Edit: Und da haben wir dann auch schon ein Problem beim Installieren der Abhängigkeiten nach Anleitung:

ERROR: No matching distribution found for attrs==23.2.1.dev0

Diese Entwicklerversion gibt es (nicht mehr) im Package-Index.

Ich habe da eine nahe normale Version eingetragen und es noch mal versucht, und mich dann von Package zu Package gehangelt das Probleme mit der jeweils angegebenen Version gemacht hat, bis ich bei gpg==1.23.2 gelandet bin. Da ist die letzte Version im Package Index 1.10.0. Also die Installationsanleitung kann so nicht stimmen, da ist offenbar eine andere Paketquelle verwendet worden. 🤔
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Sirius3
User
Beiträge: 18250
Registriert: Sonntag 21. Oktober 2012, 17:20

@__blackjack__: das habe ich mir gleich gedacht, dass die requirements.txt nicht passt. Deshalb habe ich ja die tatsächlich benutzten Pakete rausgesucht.
August1328
User
Beiträge: 71
Registriert: Samstag 27. Februar 2021, 12:18

Hallo zusammen,

ich hab mir das mal gerade runtergeladen, weil mich das ein wenig interessiert.

Zuerst habe ich die Datei swaps.py in VSCode geöffnet, das zeigt sofort welche Module ggf. fehlen: pyarrow und tqdm hatte ich nicht, also kurz per pip installiert. Numpy wird zwar importiert, aber nicht verwendet sagt VSCode, also auskommentiert. Dann noch kurz den Quellcode durchgesehen, von welcher URL er was runterlädt, nicht daß da irgend nen BS auf meinem Laptop landet.

VSCode neu gestartet, nun kennt er die beiden Module. Er meckert zwar, daß er irgendein Attribut nicht kennt, hmm, egal, einfach mal run gedrückt und dann fängt das Skript an Dateien von dtcc.com runterzuladen, dabei zeigt es einen Fortschrittsbalken. Nach einigen Sekunden zeigt es geschätzte Restzeit >2h, bissl viel... Dazu ist der Laptop am Anschlag, CPU Auslastung bei 95%, warum auch immer. Hab mir das noch 2 Minuten angesehen, in denen nichts passiert, der Fortschrittsbalken bleibt bei 2%, dann abgebrochen.

Habe nochmal in den Quellcode geschaut, warum das Skript so viele Dateien runterladen will. Zeile 67, Zeitraum 2 Jahre, also mal gekürzt auf 45 Tage und nochmal gestartet. Nun will er deutlich weniger Dateien runterladen und der Fortschrittsbalken wandert nach vorne. Dann gibt es mehrere Warnungen / Fehlermeldungen, er konnte Datensatz xy nicht parsen, 110 Spalten erwartet, 112 gefunden... Habe das ebenfalls abgebrochen und den Zeitraum in Zeile 67 auf 3 Tage gesetzt.

So läuft swaps.py durch, es lädt 3 Dateien fehlerfrei runter und ist fertig. Kurz nen Blick in meinen User Ordner geworfen, das Skript hat die 3 Ordner angelegt, und 2 mit .parquet Dateien gefüllt.

Danach habe ich die Datei correlate_swaps.py im Editor geöffnet, mir kurz angesehen, was das passiert und die dann laufen lassen. Das Skript bricht ab weil er eine Datei nicht öffnen kann/darf. Habe dann ne Konsole mit Admin-Rechten geöffnet und dann läuft dieses Skript auch erst mal, zeigt eine Tabelle mit mehreren Zeilen an und bricht dann mit einem "pyarrow.lib.ArrowTypeError: Could not unwrap RecordBatch from Python object of type 'str'" Fehler ab. Damit ist erst mal Schluss für heute.

Fazit: Ich denke, daß man die beiden Skripte mit ein wenig Ausdauer bei Fehlersuche zum Laufen bringt. Ich habe auf meinem Laptop ein aktuelles Python 3.12. installiert. Wenn ich Zeit habe, mache ich nächste Woche daheim am PC weiter, der hat deutlich mehr CPU und Bandbreite.

Schönen Abend
Andy
Benutzeravatar
__blackjack__
User
Beiträge: 13997
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@August1328: 90+% CPU-Auslastung weil in der ``conf.py`` bis zu 24 Prozesse eingestellt sind, die parallel herunterladen und verarbeiten.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
August1328
User
Beiträge: 71
Registriert: Samstag 27. Februar 2021, 12:18

@__blackjack__: Danke für den Hinweis. Bei hoher CPU Auslastung und import von ThreadPoolExecutor mit einer Konstante wie MAX_WORKERS hätte es in meinem Hirnkastl eigentlich 'Click' machen können.

@Nxiickx: Werde das nicht weiter testen, ich habe mir die Tage mal den Reddit Post durchgelesen, das Ergebnis dieser swap Analysen scheint bisweilen zweifelhaft zu sein.
Antworten