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
skai0dev
V2EX  ›  Python

[求助]IPython 最多只能三行或四行的问题

  •  
  •   skai0dev · 2018-11-05 17:35:39 +08:00 · 2715 次点击
    这是一个创建于 2213 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境是 Windows 上的 WSL,下面是版本信息:

    ➜  ~ ipython --version
    7.0.1
    ➜  ~ python --version
    Python 3.6.6
    ➜  ~ uname -a
    Linux puppy 4.4.0-17763-Microsoft #55-Microsoft Sat Oct 06 18:05:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux
    

    出现的问题就是有时候写 for 循环的时候,写完三行代码还没写完呢,它就结束了,比如判断 10 以内的数是奇数还是偶数的例子:

    ➜  ~ ipython
    Python 3.6.6 (default, Sep 12 2018, 18:26:19)
    Type 'copyright', 'credits' or 'license' for more information
    IPython 7.0.1 -- An enhanced Interactive Python. Type '?' for help.
    
    In [1]: for x in range(1, 11):
       ...:     if x % 2 == 0:
       ...:         print(x, 'is even.')
    2 is even.
    4 is even.
    6 is even.
    8 is even.
    10 is even.
    
    In [2]:
    

    不知道大神有没有知道为什么的,是我配置错误还是什么?以前好像没遇到过这问题。

    第 1 条附言  ·  2018-11-05 20:18:59 +08:00
    经 @hsyu53 老哥提醒,更新到 7.1 可以解决此 bug。
    第 2 条附言  ·  2018-11-06 12:48:17 +08:00

    还有一个问题就是如果使用的是清华大学的镜像源的话可能升不到7.1,可以换阿里云的镜像源

    清华大学镜像源和Pypi同步失败:https://github.com/tuna/issues/issues/467

    阿里云镜像源:https://mirrors.aliyun.com/pypi/simple/

    17 条回复    2018-11-16 11:41:32 +08:00
    misaka19000
        1
    misaka19000  
       2018-11-05 17:40:35 +08:00
    没遇到过,Windows 上面可以用 gitbash
    skai0dev
        2
    skai0dev  
    OP
       2018-11-05 17:47:54 +08:00
    @misaka19000 主要是在 WSL 用,试了下 Windows 下面的 Python REPL 里就没问题
    imkerberos
        3
    imkerberos  
       2018-11-05 18:17:59 +08:00   ❤️ 1
    貌似 ipyhton5 以后更换了 readline 以后的问题. 我也遇到了, 苦恼. 现在只能先 Ctrl + O 多出一行来, 然后再写.
    lazyload
        4
    lazyload  
       2018-11-05 18:31:58 +08:00
    刚试了下没有这个问题,想写几行写几行啊。。。
    skai0dev
        5
    skai0dev  
    OP
       2018-11-05 18:38:05 +08:00
    @lazyload 这个是在 Windows 上的 Linux 子系统上遇到的问题,Windows 上安装的 python 没这个问题

    WSL 我用的是 Ubuntu 18.04 ,你的是那个版本啊?
    skai0dev
        6
    skai0dev  
    OP
       2018-11-05 18:38:49 +08:00
    @imkerberos 谢谢,我还不知道有这种操作
    skai0dev
        7
    skai0dev  
    OP
       2018-11-05 18:49:13 +08:00
    难道没有什么解决办法吗?我打算去提 issue 了😂
    creedowl
        8
    creedowl  
       2018-11-05 18:53:58 +08:00
    我在 mac,linux 下也有这个问题,现在只能先打一堆空行了。。
    hanxiV2EX
        9
    hanxiV2EX  
       2018-11-05 19:11:51 +08:00 via Android
    ipython qtconsole
    hsyu53
        10
    hsyu53  
       2018-11-05 19:48:00 +08:00   ❤️ 2
    是 IPython 7.0 的 bug,更新到 IPython 7.1.1 就可以了
    nutting
        11
    nutting  
       2018-11-05 20:00:10 +08:00
    这。。。为啥不在一个文件里写好
    nutting
        12
    nutting  
       2018-11-05 20:00:42 +08:00
    有一种当年学 basic 语言的感觉
    skai0dev
        13
    skai0dev  
    OP
       2018-11-05 20:12:51 +08:00
    @hsyu53 感谢感谢,更新了之后果然好了


    @creedowl
    @imkerberos 我更新完之后解决了,你们也可以试试
    skai0dev
        14
    skai0dev  
    OP
       2018-11-05 20:14:36 +08:00
    @nutting 主要是有时候学习的话,在交互式的解释器里比较方便
    lazyload
        15
    lazyload  
       2018-11-06 14:13:44 +08:00
    @skai0dev 我就是用的 wsl,ubuntu 16.04 ipython 跟 ipython3 都试了 没问题
    skai0dev
        16
    skai0dev  
    OP
       2018-11-06 15:56:31 +08:00
    @lazyload 嗯嗯,我这个是因为 IPython7.0 的 bug,已经更新解决了
    imkerberos
        17
    imkerberos  
       2018-11-16 11:41:32 +08:00
    @hsyu53 感谢. 我好久没更新了, 还是以前的 3.x. 突然更新到 7.0 就遇到这个 BUG.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5377 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:18 · PVG 16:18 · LAX 00:18 · JFK 03:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.