Je viens de remarquer que je ne peux plus utiliser la DLL Python 2.6. Python 2.5 fonctionne très bien.Impossible d'utiliser l'interface Python 2.6 C plus, mais fonctionne 2.5
import ctypes
py1 = ctypes.cdll.python25
py2 = ctypes.cdll.python26
# ctypes.cdll.LoadLibrary("libpython2.6.so") in linux
py1.Py_Initialize()
py2.Py_Initialize()
# segmentation fault in Linux
py1.PyRun_SimpleString("print 'hello world'")
# this works because it is using python 2.5
py2.PyRun_SimpleString("print 'hello world2'")
# WindowsError: exception: access violation reading 0x00000004
Est-ce que je fais quelque chose de mal ou est-ce que Python 2.6 est cassé?
Mise à jour
- fait l'essai avec la dll alpha Python 2.7 et il semble fonctionner, il peut y avoir un problème 2.6.
- J'ai essayé ceci sur Ubuntu x64 avec Python 2.7 alpha et cela a fonctionné sans erreur de segmentation.
À quoi cela sert-il? – prestomation
Vous semblez confondre "œuvres" avec "ne pas segfault quand je fais quelque chose de bizarre"; vous devez nous dire quelle tâche pratique vous essayez d'accomplir. Il serait utile si vous présentez votre code comme ceci: Voici un script qui doit être exécuté avec Python 2.5 et contient "25" et "2.5" codé en dur; il "fonctionne" lorsqu'il est exécuté avec Python 2.5. Remplacez tout ce qui précède par 25 ou 2.6 selon le cas et cela «ne fonctionne pas». Encore mieux: un script qui obtient le numéro de version actuel (et la plate-forme si nécessaire) et fait ce que vous voulez sans numéros de version en dur. –