我在OSX 10.9上的Python 3.3.2中遇到了一个问题,如果我在终端窗口中打开Python,它会在我输入的第二行之后以"Segmentation error:11"退出,无论这两个命令是什么.例如,如果我输入:
>>> for x in range(1000): print(x)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我输入:
>>> for x in range(1000):
... print(x)
Run Code Online (Sandbox Code Playgroud)
然后当我在第二行按Enter键时出现错误.我也可以运行一个超过2行的脚本,没有任何问题.
我今天下午更新到OSX 10.9,所以我怀疑可能是它.
但是,我刚刚安装了IPython(以及其他几个软件包)并且在过去的几天里一直在使用它,所以它可能是我最近安装的其他东西.我有几次尝试安装PyQt的尝试失败,我运行了configure.py但是"make"命令失败了,我也对此表示怀疑.
我尝试重新安装Python,但它没有解决问题.IPython和IDLE都没有问题.我只关心可能存在的根本问题.
每次我尝试从数学导入时都会崩溃.有没有办法重新安装数学库?我在使用Python 3.3.2.
sidwyn$ python3
>>> from math import pi
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud) 我正在研究一个小型的Django系统,它使用大约14,000条记录.我以前没有使用过聚合功能,所以想在shell中玩它们.当我
from core.models import Match跟着时,from django.db.models import Avg我得到分段错误.背景阅读表明这是一个记忆问题; 我已经尝试关闭所有可能的东西并清理未使用的内存,所以我运行大约4Gb免费.
我可以按任意顺序导入任一命令(因此匹配,数据集可以先导入或第二次,无关紧要) - 只有当我尝试导入另一个模块或操纵它时我才会收到错误.例:
>>> from core.models import Match
>>> t = match.objects.filter(team_name="Coventry")
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)
要么
>>> from django.db.models import Avg
>>> from core.models import Match
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)
同样,以dif命运行直到第二个命令:
>>> from core.models import Match
>>> from django.db.models import Avg
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)
如果相关,我只是在localhost上运行SQLite3上的Django devserver.我从后台阅读中了解到这可能是因为某些意外加载到内存中,但不知道从哪里开始尝试进行故障排除 - 我没有在这里运行任何代码,只是在shell中使用Django ORM.
编辑:我已经进一步测试了这个; 我在许多不同的进口产品上得到了很多.
>>> from bisect import *
>>> from datetime import date …Run Code Online (Sandbox Code Playgroud) 我遇到了这个(显然是旧的)问题.我的代码中的小的,无关紧要的更改导致我的程序崩溃并抛出
分段故障11.
我在OS 10.11上使用Python 3.4.4和Kivy 1.9.(编辑:调查显示Kivy与3.5.0捆绑在一起)
编辑:微小的变化是我有一个创建Popup的方法,然后在创建后编辑属性.我最初在我的游戏对象的init语句中调用了这个方法.我想清理它,所以我将Popup分类并将属性放在新类的init语句中,然后在同一个地方调用它的构造函数.我离开了这个:
self.create_start_game_popup()
#within the method is "self.startpopup = Popup()"
Run Code Online (Sandbox Code Playgroud)
对此:
self.startpopup = StartPopup()
Run Code Online (Sandbox Code Playgroud)
编辑: 根据要求,这是我尝试的修复程序,以便不依赖外部链接.
到目前为止,我已经尝试过这个修复,正如另一个Stackoverflow帖子中所建议的那样:
cd /Library/Frameworks/Python.framework/Versions/3.3
cd ./lib/python3.3/lib-dynload
sudo mv readline.so readline.so.disabled
Run Code Online (Sandbox Code Playgroud)
我发现这个已经解决的bug引用了OS 10.9,试过了这篇评论中推荐的补丁,但没有找到任何特定于OS 10.11或者实际上对我有用的东西.
修补程序是一个临时修复程序,如Python错误在Python 3.3.2和3.3.3之间修复时建议的.它在OS 10.9上的3.3.3中得到了验证
在python.org 2.7.6和3.3.3维护版本中提供更新的readline模块之前,这里有一个脚本,它将检查python.org版本的Python 2.7.x,3.2.x,3.3.x和3.4.x用于交互式崩溃,并根据需要修补问题.在大多数系统上,您需要在具有管理员权限的帐户下运行它.
要使用它,请在Terminal.app(或其他shell)中打开终端会话,然后输入:
Run Code Online (Sandbox Code Playgroud)curl -O http://bugs.python.org/file32324/patch_readline_issue_18458.sh openssl sha1 patch_readline_issue_18458.sh #the digest should be 7cb0ff57820a027dd4ca242eb2418930f8f46b4c) sh ./patch_readline_issue_18458.sh
关于下一步该怎么做的任何想法?