Keine DLL wenn from pylab import *

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
sevelen
User
Beiträge: 33
Registriert: Dienstag 4. August 2009, 07:34

ich habe das Problem das sobald ich

Code: Alles auswählen

from pylab import *

lade meine dll mittels

Code: Alles auswählen

mydll = windll.LoadLibrary('mydll.dll') 
nicht mehr gefunden werden kann.



Mein code

Code: Alles auswählen

import numpy as np
import ctypes as ct

from pylab import *
from numpy import *
from ctypes import *

mydll = windll.LoadLibrary('mydll.dll')



DEBUGER
Traceback (most recent call last):
  File "C:\testdll\Torpy\lcMainProg.py", line 19, in <module>
    mydll = cdll.mydll
  File "C:\Python25\lib\ctypes\__init__.py", line 423, in __getattr__
    dll = self._dlltype(name)
  File "C:\Python25\lib\ctypes\__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 127] Die angegebene Prozedur wurde nicht gefunden
Kann mir jemand erklären wieso das so ist?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Und wenn Du es anders machst, wird sie gefunden? (Sorry, aber das "sobald" suggeriert das irgend wie!)

Sternchen-Importe sind böse und sollte man nicht verwenden.

Evtl. löst das ja schon das Problem :-)
sevelen
User
Beiträge: 33
Registriert: Dienstag 4. August 2009, 07:34

Bin zzt dabei zwei code teile zusammenzufügen. Daher resultieren meine Probleme.

Wenn ich die eine zeile auskommentiere klappt es wunderbar. Nur sobald sie drin ist scheint sie meinen DLL import irgentwie zu beeinflussen. Komisch finde ich selbst wenn ich speziell Ctype über CT anspreche es nicht klappt.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

``pylab`` und ``numpy`` sind so grosse Projekte, dass man sich unter Garantie etwas zerschiesst, wenn man deren Namensraum komplett uebernimmt - und dann auch noch gleichzeitig.

Warum importierst du numpy und ctypes eigentlich zweimal? Und warum missbrauchst du das ``as`` um sowieso schon kurze Namen zu kuerzen und komplett ausdruckslos zu machen?
sevelen
User
Beiträge: 33
Registriert: Dienstag 4. August 2009, 07:34

Da ich erst gerade beginne mit Python kann ich noch nicht sagen ob es vergewaltigung ist ;-) danke für den hinweiß

Von wegen ich importe die zweimal, heißt das wenn ich etwas mit import hinzugefügt habe ist es komplett drin und ich brauche kein from mehr? Bissher dachte ich müsste beides tun.


So ich habe jetzt den

Code: Alles auswählen

from pylab import *
durch

Code: Alles auswählen

from matplotlib.pylab import figure 
Ich hab aber das komplett gleiche Problem gleiches DLL import problem
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Code: Alles auswählen

import modulA

modulA.functionA()
modulA.functionB()

from modulA import functionA
functionA()
#functionB ist nicht bekannt
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

sevelen hat geschrieben:

Code: Alles auswählen

mydll = windll.LoadLibrary('mydll.dll')
[...]

DEBUGER
Traceback (most recent call last):
File "C:\testdll\Torpy\lcMainProg.py", line 19, in <module>
mydll = cdll.mydll
File "C:\Python25\lib\ctypes\__init__.py", line 423, in __getattr__
dll = self._dlltype(name)
File "C:\Python25\lib\ctypes\__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 127] Die angegebene Prozedur wurde nicht gefunden[/code]

Kann mir jemand erklären wieso das so ist?
Wäre ganz nett, wenn du auch wirklich den Code posten würdest, der den Fehler verursacht. In der Fehlermeldung steht „ mydll = cdll.mydll“, das ist in deinem Codebeispiel nicht zu finden.
sevelen
User
Beiträge: 33
Registriert: Dienstag 4. August 2009, 07:34

ich habe es mit cdll sowie mit windll probiert und wohl das alte kopiert. Spielt aber auch keine rolle der fehler ist der gleiche...



der ordnung zu liebe

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\testdll\Torpy\lcMainProg.py", line 17, in <module>
    mydll = windll.LoadLibrary('mydll.dll') 
  File "C:\Python25\lib\ctypes\__init__.py", line 431, in LoadLibrary
    return self._dlltype(name)
  File "C:\Python25\lib\ctypes\__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 127] Die angegebene Prozedur wurde nicht gefunden

Also ich hab keine ahnung was ich falsch machen. Mein Aktueller code vieleicht kann mir ja jemand sagen wo das Problem liegt.

Code: Alles auswählen

from ctypes import windll
from matplotlib.pylab import figure

mydll = windll.LoadLibrary('mydll.dll') 
figure()


Traceback (most recent call last):
  File "C:\testdll\Torpy\lcMainProg.py", line 15, in <module>
    mydll = windll.LoadLibrary('mydll.dll') 
  File "C:\Python25\lib\ctypes\__init__.py", line 431, in LoadLibrary
    return self._dlltype(name)
  File "C:\Python25\lib\ctypes\__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 127] Die angegebene Prozedur wurde nicht gefunden


...ohne pylab eintrag klappt der dll import problemlos.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

a) pylab und matplotlib unterscheiden sich insofern, als das pylab die matplotlib plotting Funktionen und numpys und matplotlib.mlab-Funktionen bereitstellt (siehe http://matplotlib.sourceforge.net/ ). Besser ist es bei pylab-Importen nicht die numpy-namespaces zu nutzen, sondern diese durch separate numpy-Importe zu erhalten, denn so ist es bei größeren Projekten leichter Überblick zu erhalten.

b) Der Traceback fängt bei Zeile 15 bzw. 19 an. Was war sonst so alles davor? Und: Kannst Du das Problem lösen, indem " mydll = windll.LoadLibrary('mydll.dll') " vor " from matplotlib.pylab import figure " kommt? In welchem Verzeichnis läuft Dein Skript? In welchem (relativ) dazu liegt die dll? Gibt es in dem Verzeichnis eine __init__.py? Du machst all das nicht zufällig über IDLE? Heißt "mydll.dll" wirklich so? Fragen über Fragen, die helfen können den Fehler einzugrenzen.

Gruß,
Christian
Antworten