64 votes

Erreur de segmentation: 11 sous OS X

Je suis un problème en Python 3.3.2 sur OSX 10.9 si si j'ouvre Python dans une fenêtre de terminal, il sort avec "erreur de Segmentation: 11" après la deuxième ligne, j'entre, indépendamment de ce que les deux commandes sont. Par exemple, si j'entre:

>>> for x in range(1000): print(x)

cela fonctionne bien, mais si j'entre:

>>> for x in range(1000):
...     print(x)

puis je reçois le message d'erreur quand j'appuyez sur enter sur la deuxième ligne. Je peux aussi exécuter un script avec plus de 2 lignes sans aucun problème.

J'ai mis à jour pour OS x 10.9 cet après-midi, donc je pense que peut-être ça.

Cependant, j'ai récemment installé IPython (ainsi que plusieurs autres paquets) et ont été à l'aide que ces derniers jours, de sorte qu'il pourrait être quelque chose d'autre que j'ai installé récemment. J'ai bien eu quelques tentatives infructueuses d'installer PyQt où j'ai couru configure.py mais alors le "faire" échec de la commande, ce qui m'a aussi des soupçons.

J'ai essayé de réinstaller Python, mais il n'a pas de résoudre le problème. Les deux IPython et RALENTI le travail sans aucun problème. Je suis juste inquiet sur ce que pourrait être le problème sous-jacent.

Toute aide est appréciée, merci d'avance.

50voto

Robert McGibbon Points 1453

C'est un bug dans la readline compatibilité en python, liées à des changements introduits dans OSX10.9. Ce week-end, communiqué de candidats pour Python2.7.6 et Python3.3.3 ont été libérés qui corriger ce bug. Les liens de téléchargement ci-dessous.

http://python.org/download/releases/2.7.6/

http://python.org/download/releases/3.3.3/

Voici la question en citant le Nie Deily, l'écriture sur le python-dev liste d'email.

Mardi, Apple a publié OS X 10.9 (un.k.un. Mavericks). Il y a déjà été beaucoup d'intérêt, en partie parce que Apple a rendu disponible pour et qu'il a fait, il est facile pour les utilisateurs avec 10.8, 10.7, et (plus) 10.6 systèmes pour mettre à niveau directement à 10,9. Malheureusement, il y a des problèmes avec notre actuel des versions de maintenance (3.3.2 et 2.7.5) sur OS X 10.9 que d'appeler à de nouvelles des versions de maintenance dès que possible.

On est critique en ce qu'il cause à l'interprète de crash lors de l'exécution dans le mode interactif (http://bugs.python.org/issue18458). Le problème était dû à longtemps d'un problème de compatibilité dans libedit de readline couche de compatibilité qu'en amont a, enfin, fixe et Apple a désormais fourni dans 10.9. Parce que l'python.org les installateurs d'un lien dynamique vers libedit, l'original de la solution de contournement dans readline.c pour la conception d'origine des défauts dans l'histoire de l'indexation provoque maintenant une erreur de segmentation sur 10.9 lorsque l'utilisateur tape dans la deuxième commande de manière interactive. Pas bon. Ronald a conçu un correctif qui permet de readline.donc, au moment de l'exécution pour détecter et travailler avec la version de libedit de sorte que nous continuons à avoir des binaires la compatibilité entre plusieurs versions d'OS X. Ce correctif est déjà dans le 3.4.0 alphas et réalignés pour le 3.3 et 2,7 branches, en attente de libération il n'. Seulement dans les dernières 12 heures, il y a eu au moins quatre doublons de le problème signalé par les utilisateurs. J'ai mis à jour la première question explicitement mention 10.9, maintenant qu'il n'est plus sous NDA, et de fournir un script pour les utilisateurs inexpérimentés pour contourner le problème par "retrait" readline.. Sans doute, comme le mot sort, il y aura moins de dupliquer des questions ouvertes, mais l'impact restera.

35voto

Ashwin Balamohan Points 1150

Un correctif est fourni sur le site Web Python: http://bugs.python.org/issue18458#msg201087

Pour l'utiliser, ouvrez une session de terminal dans Terminal.app (ou un autre shell), puis entrez:

 curl -O http://bugs.python.org/file32324/patch_readline_issue_18458.sh
openssl sha1 patch_readline_issue_18458.sh
# the digest should be 7cb0ff57820a027dd4ca242eb2418930f8f46b4c
 

puis
sh ./patch_readline_issue_18458.sh

Entrez votre mot de passe si vous y êtes invité

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X