Python 2.3 et VTK 4.2 sous Windows - Python - Programmation
Marsh Posté le 27-01-2004 à 02:30:11
Voui je sais. VTK-Python a l'air assez délaissé sous Windows.
Je reprends un soft qui ne tourne que sous Linux mais théoriquement exécutable sous Windows : wxPython, VTK, C++ standard (mouai, enfin, à peu près standard).
Je suis à peu près arrivé à le porter, sauf qu'il plante quand on ferme l'application. Y'a pire, mais c'est gênant.
Je gratte je gratte, et pour l'instant j'en conclus que c'est wxPython et VTK qui cohabitent mal. J'ai fais mon petit wrapper et j'ai drois à une runtime exception : "pure virtual function call".
Je sais pas d'où ça vient...
Marsh Posté le 27-01-2004 à 02:33:37
tu as tenté avec un debugger ? histoire au moins de savoir d'où ça vient ?
Marsh Posté le 27-01-2004 à 13:25:25
J'ai carrément recompilé python en debug et exécuté depuis Visual. J'ai un plantage au nivo d'une décrémentation de référence mais avec la tone de macros j'ai pas trop trouvé, surtotu qu'après ça plante dans la lib standard au niveau des accès fichiers... Ca fleure bon le truc moisi. J'ai décidé d'abandonner l'approche par le bas et de tenter une approche par le haut = isoler le code Python qui plante. J'arrive à ne plus faire planter Python.exe mais il me déclenche une exception apel de function virtuelle pure. Va savoir laquelle (wxWindows, VTK ?).
Marsh Posté le 27-01-2004 à 13:27:27
passe à Linux
et n'exclus pas un bug du compilateur
Marsh Posté le 29-01-2004 à 01:18:43
lol, non je ne passe pas à Linux
Porter le soft sous Win fait partie du boulot.
J'ai enfin trouvé le bug (on m'a aidé), apparement c'est un problème avec OpenGL sous Windows. Y'en a qui disent que c'est la faute à OpenGL sous Windows, d'autres que c'est un bug dans le Win32RenderWindow de VTK.
Ce qui fait planter l'appli, c'est de détruire la fenetre VTK alors qu'elle possède des objets visualisés (et qu'elle se trouve à l'intérieur d'une autre fenêtre, une fenêtre wxWindows dans mon cas). Apparement y'a l'ordre de destruction qui va pas. Je sais pas exactement la cause, mais voici la solution : avant de détruire la fenêtre, il faut effacer tous les objets VTK qui sont visulisés.
Voici le bout de code que j'ai utilisé :
Code :
|
Now ça marche. Ce problème est apparement en cours de résolution.
Voilou.
Merci pour ton aide.
Marsh Posté le 29-01-2004 à 01:36:40
tu peux faire ça propre en paramètrant atexit et en faisant des del à tout va (meme del vtk)
Marsh Posté le 29-01-2004 à 15:51:07
Dans le __del__ j'ai testé c'est déjà trop tard je crios.
Cela dit j'ai fais ça très vite car 1h après j'avais une démo...
Actuellement, c'est dans une fonction clean appelée dans le close juste avant le destroy. Je vais tester toutes les possibilités.
Marsh Posté le 15-03-2005 à 15:02:32
HelloWorld a écrit : Hello, |
Salut,
Moi aussi je tente désespérement de faire tourner sous Windows Xp vtk 4.2 wrapper en python(2.3) et afficher grâce à pygtk, mais impossible de faire tourner les exemples.
Vaut-il le coup d'utiliser python enthought 2.3.3 qui inclut directement Vtk 4.2. Il serait bien possible que les wrappers pour python soit fiable.
Qu'en pensez?
Quelqu'un a-t-il essayé python enthought 2.3.3 et fait marcher vtk avec?
Merci de vos réponses
Mon erreur est la suivante.
j'ai mis à jour mon PATH de variables d'environnement avec %VTKDIR%\bin et créer le chemin VTKDIR.
PythonWin 2.3.4 (#53, Oct 18 2004, 20:35:07) [MSC v.1200 32 bit (Intel)] on win32.
Portions Copyright 1994-2004 Mark Hammond (mhammond@skippinet.com.au) - see 'Help/About PythonWin' for further copyright information.
Traceback (most recent call last):
File "C:\Python23\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
exec codeObject in __main__.__dict__
File "C:\Program Files\vtk42\Wrapping\Python\vtkpython.py", line 7, in ?
from vtk import *
File "C:\Program Files\vtk42\Wrapping\Python\vtk\__init__.py", line 7, in ?
from common import *
File "C:\Program Files\vtk42\Wrapping\Python\vtk\common.py", line 9, in ?
from vtkCommonPython import *
ImportError: DLL load failed: Le module spécifié est introuvable.
Marsh Posté le 26-01-2004 à 23:38:44
Hello,
quelqu'un arrive-t-il à utiliser VTK en Python sans avoir de plantage, en particulier avec wxPython ?
Si vous arrivez à exécuter sans pblm le script Python-2.3.3\Lib\site-packages\vtk_python\vtk\wx\wxVTKRenderWindow.py sur votre bécanne pouvez-vous me dire comment vous avez fait ?
Merci.
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite