5

我有一个基本的终端问题。我刚刚在 Snow Leopard 上安装了 enthought 的 Canopy for Python,并且(Canopy 64bit)在我在命令行上工作时不断出现。

EX: (Canopy 64bit) Macbook~[用户名]$

我试过编辑我的 bashrc 文件,但无济于事。

bashrc 目前有这个:

# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
   return
fi

PS1="Macbook~\u\$"
# Make bash check its window size after a process completes
shopt -s checkwinsize

--

有什么办法可以阻止“(Canopy 64bit)”的显示?

4

6 回答 6

7

详细说明以前的答案: Canopy 基于 3 层系统,第 0 层包含 Canopy GUI 工作的最低限度;第 1 层包含所有“系统”包,这些包与 Canopy 一起分发,并且可能会在新版本出现时更新;最后,第 2 层是“用户”环境,用户可以在其中安装他们喜欢的任何软件包。这样一来,如果用户安装了破坏 Canopy 的软件包,可能总是会退回到第 1 层,甚至第 0 层来进行系统重置。

这三层是使用流行的库管理的,virtualenv. 在virtualenv中,您可以使用自己的一组库创建独立的 Python 环境。例如,如果您正在开发多个应用程序,每个应用程序都需要相互冲突的包,您可以在单独的“虚拟环境”中开发它们。使用virtualenv,Canopy 能够做到这一点:您可能有多个“用户”环境(尽管该功能尚未通过 GUI 公开)。

一个人使用它的“激活”脚本来激活一个虚拟环境,Canopy 在该.bash_profile行中所做的

~/Library/Enthought/Canopy_64bit/User/bin/activate

正如 DJon 指出的那样。

默认情况下,virtualenv修改您的 bash 提示,以便您可以记住您所在的虚拟环境,这就是您看到“(Canopy 64bit)”提示的原因。要摆脱它,您可以从 中删除该行.bash_profile,但这意味着您必须手动将系统指向正确的 python 可执行文件和正确的库。

punchagan 解决方案只是取消激活默认virtualenv提示,使 Canopy 虚拟环境本身完好无损:

VIRTUAL_ENV_DISABLE_PROMPT=true

于 2013-04-12T08:03:38.400 回答
1

它在 .bash_profile 中。但是,一旦您将其删除,您可能必须注销并重新登录才能生效。

安装时有一个选项可以使 Canopy 成为您的默认 python 环境。不幸的是,似乎没有办法在应用程序设置中更改它。

于 2013-04-11T13:50:07.560 回答
1

注释掉第 56--70 行的 if 子句

~/Library/Enthought/Canopy_64bit/User/bin/activate

于 2013-04-11T21:33:28.377 回答
1

要摆脱对 bash 提示的不必要添加,请关闭 Canopy,然后
在文本编辑器中打开 ~/Library/Enthought/Canopy_64bit/User/bin/activate。注释掉如下行(这些在原始文件中没有被注释掉):

#if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
#    _OLD_VIRTUAL_PS1="$PS1"
#    if [ "x(Canopy 64bit) " != x ] ; then
#   PS1="(Canopy 64bit) $PS1"
#    else
#    if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
#        # special case for Aspen magic directories
#        # see http://www.zetadev.com/software/aspen/
#        PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
#    else
#        PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
#    fi
#    fi
#    export PS1
#fi

现在关闭您的 bash 会话并重新启动它。提示现在将恢复正常。

于 2013-04-16T18:38:15.320 回答
0

编辑激活脚本就像 Arkog 回答的那样工作,但是如果我刚刚注释掉该行,我会得到类似的结果:

-bash:/Users//Library/Enthought/Canopy_64bit/User/bin/activate:第 60 行:意外标记附近的语法错误else' -bash: /Users/<username>/Library/Enthought/Canopy_64bit/User/bin/activate: line 60: else'

所以我发现将那行替换为:

$PS1 = $PS1

于 2013-05-24T17:51:00.727 回答
0

您不需要完全注释掉 ~/Library/Enthought/Canopy_64bit/User/bin/activate 中的这些行。我刚刚注释掉了这一行

      #PS1="(Canopz 64bit) $PS1"

并将其替换为

    PS1="$PS1"

所以你只需让 Canopy 做它必须做的事情,但去掉提示中烦人的额外文本。

最好的。

于 2013-05-23T17:05:51.803 回答