[Python26] ImportError, maar .pyd bestand is er gewoon

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Voor Python 2.6 wil ik SVN bindings installeren en deze heb ik gedownload van http://alagazam.net/.

De twee folders (libsvn en svn) heb ik netjes in C:\Python26\lib\site-packages gestopt. Nu start ik de python console en typ ik het volgende om de 'installatie' te testen.
Python:
1
from svn import core


Hierbij krijg ik de volgende trace.
Python:
1
2
3
4
5
6
7
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\lib\site-packages\svn\core.py", line 19, in <module>
    from libsvn.core import *
  File "C:\Python26\lib\site-packages\libsvn\core.py", line 5, in <module>
    import _core
ImportError: DLL load failed: The specified module could not be found.


Nu ga ik even na wat er gebeurd.

-Ik vraag de library svn op, hier voor wordt \site-packages\svn\core.py geladen.

-Deze wil op zijn beurt "libsvn.core" laden. Hiervoor wordt terecht \site-packages\libsvn\core.py gevonden.

-Deze wil nu de library _core laden. Nu zou hiervoor het bestand \site-packages\libsvn\_core.pyd geladen moeten worden. Maar toch krijg ik de melding dat dit bestand niet gevonden kan worden, ondanks dat dit bestand in dezelfde directory staat.

Nu moest ik toevallig all .dll in \libsvn\ hernoemen naar .pyd omdat ik Python 2.6 gebruik (stond zo in de handleiding van de bindings), maar nu heb ik voor de grap het ook geprobeerd met alleen de dll bestanden.

Met de niet hernoemde DLL bestanden krijg ik dezelfde stack trace maar dan de error "ImportError: No module named _core".

Als tip kreeg ik nog om de DLL bestanden te laten staan en die te kopieeren en te hernoemen naar .PYD.

Nu heb ik dus _core.dll en _core.pyd, etc... Maar dan krijg ik weer de eerste error.

Wie o wie heeft enig idee hoe ik dit probleem kan oplossen? Ik ben zelf niet erg geschoold in python, de enige reden dat ik dit doe is omdat TRAC dit niet zelf kan installeren jezus wat is het een gezeik om software te installeren voor Python, dit is niet de eerste keer dat ik problemen heb, wel elke keer andere problemen

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 19:25
Staat de directory waar de pyd files in zitten, in je Python path? Zo te zien wel, aangezien alle files in dezelfde directory staan.

Een andere mogelijkheid is dat de DLL zelf wel gevonden wordt, maar sommige van zijn library dependencies niet. Om dat uit te zoeken kun je onder Windows dependency walker gebruiken (onder UNIX zou je gewoon ldd kunnen doen).

[ Voor 77% gewijzigd door Soultaker op 29-12-2010 17:48 ]


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
In sys.path staat wel de directory \site-packages\ en volgens mij is dit genoeg, maar ik zal eens proberen wat er gebeurd als ik oop \site_packages\libsvn toevoeg.

Ik vrees dat ik die dependency walker moet gaan gebruiken, bedankt voor de tip, ik wist niet dat dat bestond. Of dat het mogelijk was dat pyd bestanden nog weer dependencies hadden die niet als foutmelding naar boven komen.


Edit:

Hmm depency walker zegt
code:
1
2
3
Error: At least one required implicit or forwarded dependency was not found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.


Lijkt het goede spoor :).

Edit2:

Ah heb het nu helemaal gefixed, op een of andere manier miste ongeveer all SVN libraries waartegen de wrapper wilde praten, ondanks dat ik gewoon een SVN server draai en geinstalleerd heb. Na wat klooien de dlls opgespoord en nu werkt het allemaal prima.

Waar wel opgelet moet worden is dat GPSVC.DLL en IESHIMS.DLL door depency walker altijd als gemist gezien worden, terwijl ze wel bestaan (iets met group manifests vond ik).

Iig werkt het nu prima!

[ Voor 51% gewijzigd door roy-t op 29-12-2010 18:19 ]

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 16:19

alienfruit

the alien you never expected

Ja, waarschijnlijk moest je de SVN client ook installeren? Dat probleem had ik een tijdje terug zelf ook terwijl SVN Server wel draaide.

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
alienfruit schreef op woensdag 29 december 2010 @ 22:31:
Ja, waarschijnlijk moest je de SVN client ook installeren? Dat probleem had ik een tijdje terug zelf ook terwijl SVN Server wel draaide.
Nee ik had zowel de SVN client als SVN server geinstalleerd, maar de SVN server was niet 'vanilla' maar VisualSVN server, die bewaarde de DLL bestanden in een eigen map die niet in de PATH of PYTHON_PATH variabele stond, waar op de andere computers deze map wel gevonden kon worden.

Achteraf zijn dit soort fouten altijd zo logisch. Maarja een betere foutmelding had ook geholpen (waarom wordt zogenaamd_core niet gevonden als _core zelf juist *.dll niet kon vinden?).

~ Mijn prog blog!