Git 2.5.1';s bash控制台没有';t打开python解释器

Git 2.5.1';s bash控制台没有';t打开python解释器,python,git,bash,Python,Git,Bash,如果我在CMD中使用它,它就可以正常工作,但是如果我在gitbash中尝试它,它就不能工作。我喜欢使用GitBash作为我唯一的控制台,但如果它不适用于Python3.4,我就不能这样做 示例如下图所示。这很容易复制。如果安装了Python和Git,请卸载它们,安装Python3.4,安装Git 2.5.1,您就会得到这个结果 如何使Python解释器在Git Bash中工作?您可以通过编辑“$HOME/.bashrc”中的文件来配置Git Bash控制台 将此行添加到您的$HOME/.bas

如果我在CMD中使用它,它就可以正常工作,但是如果我在gitbash中尝试它,它就不能工作。我喜欢使用GitBash作为我唯一的控制台,但如果它不适用于Python3.4,我就不能这样做

示例如下图所示。这很容易复制。如果安装了Python和Git,请卸载它们,安装Python3.4,安装Git 2.5.1,您就会得到这个结果


如何使Python解释器在Git Bash中工作?

您可以通过编辑“$HOME/.bashrc”中的文件来配置Git Bash控制台

将此行添加到您的
$HOME/.bashrc

export PATH=$PATH;c:/python34

它试图打开控制台以获得输出。除非您编译python或获得mingw版本,否则您可能需要以下内容:


您需要显式的python交互模式:python-i

您可以在.bashrc:别名python='python-i'中定义别名,但这样做将无法运行脚本文件(即:python script.py)

可在此处找到:

作为Git新默认终端的MinTTY终端根本不支持Windows控制台程序。我不知道为什么决定更改默认终端,但我知道一些解决方法:

  • 编写Bash别名以使用winpty启动python
  • Bash别名(放在.bashrc中):

    alias python=winpty py.exe
    
    function maybe_py() {
        if [ $# -eq 0 ]; then
            /c/Windows/py.exe -i
        else
           /c/Windows/py.exe $@
        fi
    }
    
    alias python=maybe_py
    
    注意:从适用于Windows 2.7.1的Git开始,Winpty已开箱即用。winpty安装在
    Git\usr\bin


  • 如果没有参数,请编写Bash别名以交互模式启动python:
  • Bash别名(放在.bashrc中):

    alias python=winpty py.exe
    
    function maybe_py() {
        if [ $# -eq 0 ]; then
            /c/Windows/py.exe -i
        else
           /c/Windows/py.exe $@
        fi
    }
    
    alias python=maybe_py
    

  • 以交互模式显式启动python
  • 请注意,使用箭头键浏览命令历史记录可能无法正常工作:

    py -i
    
    或对于脚本:

    py script.py
    
    什么是py.exe?

    如果您想知道为什么我要引用
    C:\Windows\py.exe
    而不是特定的
    python.exe
    安装,我想解释一下使用它的一些好处(如下:

    • 它与较新的Python安装(Python 3.3+)一起安装
    • 它理解并尝试在中使用指定的python安装
    • 它与()
    有关更改首选/系统安装(例如交互模式)的信息,请参阅。

    感谢@darthfett's,这在很大程度上解决了问题

    仅供参考:当您的脚本使用import getpass;getpass.getpass()时,同样的症状也会出现,在这种情况下,
    python-i您的脚本.py
    不会修复它,但是
    winpty python您的脚本.py
    仍然很有魅力。(幸运的是,他们至少提供了winpty开箱即用的最新版本的Git For Windows。)

    因此,要设置一次(每个虚拟环境)并忘记它,您可以在
    env/Script/activate
    的末尾追加此行:

    alias python='winpty python.exe'
    

    它将在bash控制台中工作。(但是,如果您碰巧是vim用户,当您在vim中执行
    :python my_script.py
    时,它在vim中仍然无法工作。)

    基于@Darthfett的答案。我必须确保有引号,而不是引用.exe文件

    所以最后在你的
    .bashrc

    
    别名python='winpty python'
    别名pip='winpty pip'#也可以救pip
    

    那么一切都好了吗

    python 皮普
    Tawanda@Tawanda-PC MINGW64~
    $alias pip='winpty pip'
    Tawanda@Tawanda-PC MINGW64~
    $pip-v
    用法:
    pip[选项]
    命令:
    安装软件包。
    下载软件包。
    卸载卸载包。
    以需求格式冻结已安装的输出包。
    列出已安装的软件包。
    显示有关已安装软件包的信息。
    
    安装git for windows时,请选择使用windows默认控制台窗口,如下图所示。 此选项允许您使用交互式python或nodejs。getpass也可在此控制台上工作


    安装git for windows时,请选择使用windows默认控制台窗口,如中所示。
    此选项允许您使用交互式python或nodejs。getpass也可在此控制台上工作。

    $HOME/.bashrc
    默认情况下不存在。创建它并添加该行,然后重新启动Git-Bash并不能使其与python一起工作。我遇到了同样的问题。找到解决方法了吗?运行python-c“”有效。问题似乎只与我自己的交互式shellComment有关:
    python-i
    ,如果您试图使用箭头键检索命令历史记录,则新的git bash控制台并不总是能正常工作。它似乎在输出中向上移动光标,就好像它是一个文本编辑器一样。@Sushil我刚刚研究并看到一个n更新。MinTTY终端似乎不支持windows控制台开箱即用程序,但如果您安装了适用于windows 2.7.1或更高版本的Git,您可以使用Winpty开箱即用来运行python。我已经适当地更新了答案。仅供参考:脚本使用
    getpass.getpass()时也存在相同的症状
    python-i your_script.py
    不会修复它,但是
    winpty python your_script.py
    工作起来很有魅力。幸运的是,他们至少为winpty提供了最新版本的Git For Windows。我想你需要在别名周围加引号,因为它包含一个空格。适合我:
    alias python=“winpty python.exe”
    python-i
    如果您试图使用箭头键检索命令历史记录,那么使用新的git bash控制台的python-i并不总是正常工作。它似乎在输出中向上移动光标,就像它是一个文本编辑器。是的,这是真的。很遗憾,但这是我发现解释器工作的唯一方式。如果您运行
    winpty python
    然后您将获得py