2016-05-10 16 views
0

Ich versuche, FluidSynth in einem Spiel zu verwenden, an dem ich arbeite, aber ich kann nicht scheinen, Fluidsynth richtig zu funktionieren. Immer, wenn ich zu importieren versuche ich diese:Fluidsynth Fehler: "Name 'Ctypes' ist nicht definiert"

>>> import fluidsynth 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python26\lib\site-packages\fluidsynth.py", line 35, in <module> 
    _fl = ctypes.cdll.LoadLibrary("./libfluidsynth") 
NameError: name 'ctypes' is not defined 

Ich las, dass Sie einige Importbefehl tun können, um der Ctypes Fehler loszuwerden, aber wenn ich versuche, dass dies der Fall ist:

>>> lib = ctypes.WinDLL('C:\Python26\Lib\site-packages\libfluidsynth.dll') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python26\lib\ctypes\__init__.py", line 353, in __init__ 
    self._handle = _dlopen(self._name, mode) 
WindowsError: [Error 193] %1 is not a valid Win32 application 

Ich bin Beachten Sie, dass der win32-Anwendungsfehler normalerweise auftritt, wenn Sie versuchen, eine App auszuführen, die nicht für den Prozessor des Computers entworfen wurde, aber die Quelle, von der ich die libfluidsynth.dll heruntergeladen habe, war für Windows 32.
Ich verwende Windows 7 64 Bit und Python 2.6.
Außerdem habe ich Python auf meinem 32-Bit-Computer heruntergeladen und auch das pyFluidSynth-Paket und die FluidSynth-DLL selbst, aber es sagte mir, dass es die FluidSynth-Bibliothek oder so etwas nicht finden konnte.

+0

Vielleicht 'Import ctypes' versuchen ... –

+0

Der Fehler ist in der lib so' lib = ctypes. WinDLL ('C: \ Python26 \ Lib \ Site-Pakete \ libfluidsynth.dll') hat keine Auswirkungen. Welche Fluidsynth verwendest du? –

+0

Ich verwende Fluidsynth 0.2 für Python. Nicht sicher über die DLL, aber es ist wahrscheinlich 1.1.3 –

Antwort

0

Beim Laden von Bibliotheken entspricht die geladene Bibliothek weitgehend der Architektur des Pythons, das Sie gerade ausführen.

Stellen Sie sicher, dass, wenn Ihr Python 64-Bit ist, libfluidsynth.dll 64-Bit ist. Gleiches mit 32-Bit. Sie müssen gleich sein.

können Sie erkennen, ob Ihr Python in 64-Bit- oder 32-Bit mit diesem Code:

>>> import platform 
>>> print(platform.architecture()[0]) 
64bit 
+0

Oh, okay. Ich habe die 64-Bit-Fluidsynth-DLL heruntergeladen, und der Fehler ist verschwunden. Allerdings bekomme ich immer noch den Ctypes-Fehler. –

+0

Klingt wie ein schlecht entworfenes Paket. Wie funktioniert [pyfluidsynth] (https://pypi.python.org/pypi/pyFluidSynth)? Wenn Sie dazu nicht wechseln können, versuchen Sie, vor dem Paket 'import ctypes' hinzuzufügen. – Kupiakos

+0

Ich konnte pyFluidSynth aus irgendeinem Grund nicht installieren oder ein Ei erstellen (selbst mit einfacher Installation), also weiß ich nicht, was los ist. Ich versuche deshalb einfach Fluidsynth zu verwenden. Es gibt eine Eizelle, aber ich kann die Eizelle nicht finden. –

Verwandte Themen