Forum de la communauté SFML

Bindings - autres langages => Python => Discussion démarrée par: Linkht le Mai 19, 2012, 05:33:17 pm

Titre: [Solved] Compatibilité Python 3.2 & SFML 1.6 (pysfml-cython)
Posté par: Linkht le Mai 19, 2012, 05:33:17 pm
Bonjour,

J'ai installé la dernière version de python sur mon PC, c'est à dire la 3.2.3 et j'ai voulu tester le binding SFML pour Python (: PySFML 1.6 pour Python 3.1).

Evidemment ça ne marchait pas donc j'ai téléchargé le SDK SFML et j'ai compilé les sources (en suivant le tuto) malheureusement j'ai des erreurs.

J'aimerai donc savoir, si actuellement la SFML est compatible avec la dernière version de Python ou alors le problème vient de chez moi?

Infos : Je compile les sources via mingw et non visual C++

Image de la console : http://www.noelshack.com/2012-20-1337433390-console.jpg (http://www.noelshack.com/2012-20-1337433390-console.jpg)
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: bastien le Mai 19, 2012, 09:54:45 pm
Bonjour,

Je maintiens un autre binding qui est compatible avec Python 3.2. Tu peux télécharger l'installeur directement ici : https://github.com/bastienleonard/pysfml2-cython/downloads (https://github.com/bastienleonard/pysfml2-cython/downloads)
(Fais attention à prendre le 0.1, pas le 0.0.1)

Documentation : http://pysfml2-cython.readthedocs.org/
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: Linkht le Mai 20, 2012, 01:27:53 am
Merci de ta réponse, j'ai installé ce binding, mais j'obtiens une erreur avec ce code :

import sfml as sf

win = sf.RenderWindows(sf.videoMode(640,480),"Test")

running = True

while running:
for event in win.iter_events():
if event.type == sf.Event.CLOSED:
running = False

win.clear()
win.draw()
win.display()

win.close()

Ca me dit : DLL load failed le module spécifié est introuvable.

Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: bastien le Mai 20, 2012, 01:43:11 am
 :-\ Est-ce que tu pourrais ouvrir le module (smfl.pyd) avec Dependency walker (http://www.dependencywalker.com/) et regarder les DLL qu'il ne trouve pas ?
Est-ce que tu es en 32 ou 64 bits ?
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: Linkht le Mai 20, 2012, 02:07:58 am
Je suis en 64 bits, c'est peut être pour ça..


Je t'ai mis le fichier de dependency walker en lien ci-joint (je sais pas si c'est ça qu'il te faut)

en tout cas dans mon dossier site-packages, ensuite pysfml2-cython : je n'ai que licence et sfml-licence (des fichiers .txt) je ne sais pas si c'est normal !

http://www.toofiles.com/fr/oip/documents/dwi/sfml.html
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: bastien le Mai 20, 2012, 02:31:41 am
Est-ce que le Python installé est en 64 bits ? Si oui, c'est certainement de là que ça vient. Actuellement, il n'y a que des installeurs 32 bits, donc il faut installer Python en 32 bits aussi, même sur un système 64 bits.
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: Linkht le Mai 20, 2012, 02:37:48 am
Non, la version de python est une 32 bits, je viens même de réinstaller python et le binding, et toujours le même problème :/
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: Linkht le Mai 20, 2012, 02:43:15 am
Désolé du double poste.

Mais problème réglé, j'ai mis mon fichier de script dans le dossier de python et ça marche nickel!

J'exécutais en fait, le script dans un dossier "document"...

Maintenant, si je veux coder dans un autre répertoire que "python", je devrais déplacer quelle DLL? (sfml-audio, sfml-graphics, etc?)
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: bastien le Mai 20, 2012, 03:00:24 am
Il y a les DLL qui commencent par sfml (cinq), plus openal32.dll et libsndfile-1.dll. Pour être sûr, tu peux ouvrir l'installeur avec un programme du genre 7zip, et regarder dans le dossier DATA.

Bizarre, chez moi je n'ai pas de problème une fois que les DLL sont dans le dossier de Python, par contre j'en avais en les plaçant dans le dossier courant.

Sinon, tu peux simplement mettre les DLL dans le répertoire de Windows (un truc du genre C:\Windows\SysWOW64, pour les DLL 32 bits sur un Windows 64 bits).

Je suis certain d'avoir testé l'installeur pour 2.7, mais pas pour 3.2, donc je vérifierai quand même que je n'ai pas de problème. Et je vais essayer de voir quelles sont les best practices pour include des DLL dans un installeur Python.
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: Linkht le Mai 20, 2012, 03:03:33 am
Je n'avais pas ce problème quand j'ai testé pygame avec python 3.1.

Un grand merci pour ton aide et bon boulot ;)
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: bastien le Mai 20, 2012, 11:51:05 am
Est-ce que tu as ajouté le chemin de Python à la variable d'environnement PATH, ou est-ce que tu utilises une autre du genre un IDE ?
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: bastien le Mai 20, 2012, 02:11:17 pm
Je viens de voir que ce site a des installeurs 64 bits natifs : http://www.lfd.uci.edu/~gohlke/pythonlibs/#pysfml2 (http://www.lfd.uci.edu/~gohlke/pythonlibs/#pysfml2)
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: Linkht le Mai 20, 2012, 03:42:04 pm
J'utilise Sublime Text2 pour coder.
Et non je n'ai rien ajouté à la variable PATH
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: bastien le Mai 20, 2012, 06:37:03 pm
C'est certainement pour ça que les DLL ne sont pas trouvées alors.
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: Linkht le Mai 20, 2012, 07:06:25 pm
Je n'avais jamais ce problème avant avec une autre biblio-tierce (pygame,...)

Je dois ajouter quoi alors pour la variable PATH de windows?

Merci de ton aide ;)
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: bastien le Mai 20, 2012, 07:54:02 pm
Il faut que je vérifie, mais il y a des chances que l'installeur de Pygame ajoute le répertoire de ses DLL dans PATH.

Edit :
Pour tester rapidement en console, tape un truc du genre PATH=C:\Python32;%PATH%, puis essaie d'importer le module.
Titre: Re : Compatibilité Python 3.2 & SFML 1.6
Posté par: Linkht le Mai 21, 2012, 03:49:37 pm
J'ai réinstallé Python 3.2 sur le C:/
Et j'ai installé la SFML2 via ce lien : http://www.lfd.uci.edu/~gohlke/pythonlibs/#pysfml2

Un grand merci ;)

Plus aucun problème à présent.