MediaInfo implementieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
KlaRo
User
Beiträge: 32
Registriert: Samstag 27. Januar 2024, 10:38

Hallo Gemeinde,

ich habe vor ca. fünf Jahren begonnen mit Python zu programmieren und ein Projekt zum Auslesen von Video- und Musikdateien von Festplatte mittels MediaInfo gestartet. Als die Geschichte mit Corona begann, konnte ich das Erlernen des Programmierens in Python und das Projekt leider nicht mehr fortführen. Das Projekt war schon nutzbar und hat die gewünschten Informationen ausgelesen.

Jetzt wollte ich an dem Projekt weiterarbeiten und es ausbauen, komme allerdings leider nicht mehr weiter. Folgende Fehler werden ausgegeben (FileNotFoundError: Could not find module 'MediaInfo.dll' (or one of its dependencies). Try using the full path with constructor syntax.):
[img]C:\Users\BigBoss\Desktop\Unbenannt.PNG[/img]

An der Projektstruktur wurde nichts verändert, und MediaInfo eigentlich eingebunden. Scheinbar aber findet es MediaInfo.DLL nicht mehr.

Wo könnte der Fehler liegen? Das Programm hat ja mal fehlerfrei gearbeitet...

VG aus dem Süd-Westen Deutschlands
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte Fehlermeldung kopieren + mit den Code-Tags (</>-Knopf im vollstaendigen Editor) einfuegen. Als Bild ist das immer schlecht. Und wenn schon Bild, dann muss das hochgeladen werden auf einen Image-Hoster & verlinkt.
KlaRo
User
Beiträge: 32
Registriert: Samstag 27. Januar 2024, 10:38

__deets__ hat geschrieben: Samstag 27. Januar 2024, 11:31 Bitte Fehlermeldung kopieren + mit den Code-Tags (</>-Knopf im vollstaendigen Editor) einfuegen. Als Bild ist das immer schlecht. Und wenn schon Bild, dann muss das hochgeladen werden auf einen Image-Hoster & verlinkt.
Danke für die Antwort.

Nachfolgend die Fehlermeldung:
FileNotFoundError: Could not find module 'MediaInfo.dll' (or one of its dependencies). Try using the full path with constructor syntax.

Erst einmal anders gefragt, bevor ich sämtliche Code-Passagen raussuche:
Welche Dateien von MediaInfo müssen wo abgelegt werden, damit das Ganze funktionieren kann? Vielleicht liegt ja tatsächlich hier irgendwo der Fehler. Weiß nämlich leider nicht mehr, wo ich damals welche Dateien abgelegt habe...
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Das ist eine sehr spezifische Frage, die ad hoc wahrscheinlich hier niemand beantworten kann. Zumindest halte ich das für sehr unwahrscheinlich. Dafür müsste hier jemand genau damit gearbeitet haben, und du zeigst ja nun wirklich gar keine Details.

PyPI kennt ein Paket mit dem Namen. Möglicherweise meinst du das. Wenn du das meinst: Das ist nur ein Wrapper für das gleichnamige Programm/Bibliothek. Und die muss das/die muss dann natürlich auch installiert sein.
KlaRo
User
Beiträge: 32
Registriert: Samstag 27. Januar 2024, 10:38

Das sind die Fehler:
D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\venv\Scripts\python.exe D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\ListMovs.py
D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\ListMovs.py:42: DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
self.move(xy[0], xy[1])
Traceback (most recent call last):
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\ListMovs.py", line 387, in <module>
window.start_app()
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\ListMovs.py", line 66, in start_app
self.on_read_main_entry(stnrd_fldr)
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\ListMovs.py", line 120, in on_read_main_entry
traverse_folder(self, path_movs)
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\TraverseFolders.py", line 34, in traverse_folder
get_metadata(self, main_path, files, file_count)
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\TraverseFolders.py", line 121, in get_metadata
get_infos()
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\TraverseFolders.py", line 98, in get_infos
resolution, laenge_std, laenge_min, languages_au, languages_st = functions.get_metadata(path_file)
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\functions.py", line 104, in get_metadata
media_info = MediaInfo.parse(path_file)
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\venv\lib\site-packages\pymediainfo\__init__.py", line 434, in parse
lib, handle, lib_version_str, lib_version = cls._get_library(library_file)
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\venv\lib\site-packages\pymediainfo\__init__.py", line 329, in _get_library
raise OSError(
OSError: Failed to load library from MediaInfo.dll - Could not find module 'MediaInfo.dll' (or one of its dependencies). Try using the full path with constructor syntax.

Process finished with exit code 1
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also laut https://github.com/sbraz/pymediainfo/bl ... 50-L290C60 will er, das die MediaInfo.DLL parallel zu deinem Skript liegt. Tut sie das?
KlaRo
User
Beiträge: 32
Registriert: Samstag 27. Januar 2024, 10:38

Ja, liegt im selben Ordner.
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Passen Bits von Python und DLL zusammen? Also 32-Bit Python und 32-Bit DLL oder 64-Bit Python und 64-Bit DLL‽
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
KlaRo
User
Beiträge: 32
Registriert: Samstag 27. Januar 2024, 10:38

Die Fehler erscheinen bei beiden DLL-Dateien.
KlaRo
User
Beiträge: 32
Registriert: Samstag 27. Januar 2024, 10:38

Okay, das Problem hat sich, nach mehrmaliger Installation und einigen Neustarts, mittlerweile erledigt.
Antworten