Fehlende Dateien für die Magic-Bibliothek unter Windows

8

Ich muss Mime-Typ für einige Dateien in Windows bekommen, also habe ich python-magic (auf 32-Bit Python 2.7.3) installiert.
Es hängt von der Unix magic -Bibliothek ab.
Der Autor weist an, regex2.dll , zlib1.dll und magic1.dll von gnuwin32-Projekt zu erhalten. Also habe ich die Dateien in einem Ordner gespeichert und den Ordner zu meinem System hinzugefügt PATH .
Jetzt, wenn ich magic Methoden ausführen, bekomme ich Datei Ausnahme:

%Vor%

DLLs sind im PATH, ich habe versucht, Debugging und magic1.dll ist richtig lokalisiert, aber irgendwo in der Bibliothek wirft eine Ausnahme.
Im gnuwin32 Paket habe ich magic und magic.mgc gefunden. Ich habe sie in den gleichen Ordner gelegt und WindowsError: [Error 126] auf

bekommen %Vor%

Dies geschieht offensichtlich, weil Python versucht, magic file als dll zu öffnen, was einfacher Text ist. Nach dem Hinzufügen von .dll zu Dateinamen im Code bekomme ich die gleiche magic.MagicException: could not find any magic files! .
Welche Dateien fehlen mir?

UPDATE:

%Vor%

UPDATE 2 (Gelöst):

%Vor%

musste die Datei nur explizit angeben

    
user2052437 07.02.2013, 22:08
quelle

3 Antworten

2

Der Pfad zu magic file muss explizit an den Konstruktor übergeben werden.

%Vor%     
user2052437 21.02.2013, 16:26
quelle
10

Für zukünftige Google-Besucher: Eine andere Lösung besteht darin, die% MAGIC% -Umgebungsvariable in der Systemeinstellung so einzustellen, dass sie auf die magische Datei zeigt. Für mich war das:

%Vor%

Sie müssen den Pfad in Ihrem Programm nicht fest codieren!

    
Peter 30.01.2015 11:13
quelle
2

Da die pythonmagischen Probleme ziemlich häufig vorkommen, hier eine funktionierende Lösung für zukünftige Googler: Nachdem ich die meisten Lösungen getestet hatte, ohne den Quellcode zu ändern, fand ich folgendes, um python-magic aus der Box zu bekommen:

  1. Installieren Sie die GnuWin32-Datei zuerst
  2. Legen Sie die Umgebungsvariable MAGIC = path \ to \ gnuwin32 \ share \ misc \ magic
  3. fest
  4. Stellen Sie sicher, dass alle installierten ausführbaren Dateien / Bibliotheken über die .exe erreichbar sind PFAD
  5. Installieren Sie python-magic über pip
Xanius 20.10.2017 09:48
quelle