V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Hualin
V2EX  ›  Python

[小经验] 控制台有大量输出的 Python 程序在 sublime text 2 会卡死 呵呵

  •  
  •   Hualin · 2013-10-23 00:42:52 +08:00 · 6074 次点击
    这是一个创建于 3838 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天在 sublime text 2 里面用 python 写了个排序的作业,知道了 range 和 xrange 的区别。我想输出循环内的 index i 和 j。当我把数组换成 500 的时候 sublime 就 not responding 了。我把程序简化了下:

    n = 500
    for i in xrange(n):
    for j in xrange(0, n-i):
    print i, j

    sublime 要过 33s 才会输出结果(iMac),也很吃资源。而我用 ipython 就很快,相当快。

    我不知道是不是 sublime build 的控制台输出要先缓存在里面,然后一口气输出,但也不至于这么坑爹吧。anyway 我知道这些东西非常简单。如果懂的人路过,吐槽或者讨论 都欢迎。
    5 条回复    1970-01-01 08:00:00 +08:00
    Kabie
        1
    Kabie  
       2013-10-23 02:04:27 +08:00
    ...GUI的问题……太正常了……你这一下要生成十几万个行对象……如果你放在一行里输出就没这个问题了……
    Hualin
        2
    Hualin  
    OP
       2013-10-23 07:43:43 +08:00
    @Kabie 对,但 print 应该每次调用一次就生成一个对象的吧。。。

    请问 怎样把 build system 的输出到控制台。就是我一 super + B 就能蹦出 控制台,然后把结果显示到里面。我下了个插件叫 sublime terminal,但只能打开该文件所在目录的命令行窗口,我还不知道怎么设它的 cmd 和 papameter 参数
    jianghu52
        3
    jianghu52  
       2013-10-23 14:36:50 +08:00
    不光是sublime text2,包括pyscript也是这样。所以现在我改用pycharm了
    koykoi
        4
    koykoi  
       2013-10-23 23:30:47 +08:00
    可以试试将输出定向到一个新tab中
    sublime shebang插件
    Hualin
        5
    Hualin  
    OP
       2013-10-23 23:41:37 +08:00
    @koykoi 这个插件不错,但根本问题还是解决不了。不过这插件我收了,谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5042 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:16 · PVG 09:16 · LAX 18:16 · JFK 21:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.