Matroids Matheplanet Forum Index
Moderiert von matroid
Informatik » Programmieren » Python Error beim Import einer DLL
Autor
Universität/Hochschule Python Error beim Import einer DLL
Wolti
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 17.05.2004
Mitteilungen: 110
Wohnort: Rhede, Deutschland
  Themenstart: 2023-01-24

Hallo zusammen. Ich schreibe gerade ein CMake build script für eine C++ Bibliothek (hier), welche auch Python-Bindings bereitstellt (hier). Das Erstellen vom C++ Code funktioniert unter Windows und Linux, alle Tests und Beispiele laufen. Während unter Linux die Python Beispiele und Jupyter Notebooks auch problemlos laufen, bekomme ich unter Windows folgende Fehlermeldung: \sourceon --------------------------------------------------------------------------- ImportError Traceback (most recent call last) Cell In[3], line 2 1 # first, we need to import our essentia module. It is aptly named 'essentia'! ----> 2 import essentia 4 # there are two operating modes in essentia which (mostly) have the same algorithms 5 # they are accessible via two submodules: 6 import essentia.standard File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\essentia\__init__.py:1 ----> 1 from . import _essentia 2 import sys as _sys 3 from ._essentia import reset ImportError: cannot import name '_essentia' from partially initialized module 'essentia' (most likely due to a circular import) (C:\Users\Christian\AppData\Local\Programs\Python\Python310\lib\site-packages\essentia\__init__.py) \sourceoff Das Binary im Python Paket heißt unter Linux _essentia.cpython-310-x86_64-linux-gnu.so, unter Windows habe ich die Datei einfach _essentia.dll genannt. Ich kenne mich mit Python nicht wirklich aus, vermute aber, dass ich den Fehler eher im Python Paket-Code als im C++ Code suchen muss. Den Code für das Windows Paket habe ich komplett vom Linux Paket (hier das wheel) übernommen, nur das Binary ausgetauscht. Gibt es unter Windows irgendwelche Besonderheiten zu beachten? Vielleicht hat hier ja jemand eine Idee... Gruß, Christian


   Profil
Wolti
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 17.05.2004
Mitteilungen: 110
Wohnort: Rhede, Deutschland
  Beitrag No.1, vom Themenstarter, eingetragen 2023-01-24

Nach umbenennen von *.dll zu *.pyd (die DLL ist ein Python-Modul mit PyInit__essentia) und \sourceon python import os os.add_dll_directory('C:\\Pfad-zu-Dependencies') \sourceoff gib es zwar keine Fehlermeldung mehr, aber der Python-Kernel verabschiedet sich. Scheint also auf der C++ Seite noch etwas schief zu laufen...


   Profil

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]