当我运行python 2.7交互式shell(在Ubuntu 12.04 LTS中)时,我得到的似乎是内存泄漏。当我启动一个交互式shell时,内存使用率会以相当均匀的速率上升,直到使用所有内存(3.9gb),然后它回击到80%(ish)并且交换空间跳跃大约200-400mb并且它关闭并提供提示,但任何进一步的交互都会将RAM使用率恢复到100%(使系统几乎无法运行)。
交互式shell可以从gnome终端启动,或者当从另一个盒子进入计算机时(我正在使用connectbot for android进行测试),并且会出现同样的问题。
修改: 我删除了我的.pythonrc.py文件,问题似乎已经消失了。我最近没有更改它(我在一个月前创建它并且没有触及它,因为这个问题昨天开始了。)
这是我的pythonrc文件(.pythonrc.py
)
import atexit
import os
import readline
import rlcompleter
history = os.path.expanduser('~/.python_history')
readline.read_history_file(history)
readline.parse_and_bind('tab: complete')
atexit.register(readline.write_history_file, history)
编辑2:
我删除了.python_history
文件,这似乎解决了问题。该文件是1914155行和约54mb。我打算调整我的.pythonrc文件,以便它只存储几百行的历史记录。
答案 0 :(得分:3)
要解决问题(希望是永久解决方案),我将以下行添加到.pythonrc.py
文件中。
import atexit
import os
import readline
import rlcompleter
history = os.path.expanduser('~/.python_history')
readline.read_history_file(history)
readline.parse_and_bind('tab: complete')
# The added line
readline.set_history_length(200)
atexit.register(readline.write_history_file, history)
我认为任何足够不愚蠢的数字都不会很好(而不仅仅是200),但我认为如果我在历史上回到200多行,我就会做错事。