2013-04-11 59 views
5

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

EX: (冠64位)的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 

-

有没有办法从显示阻止 “(冠64位)”?

回答

1

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

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

+0

这不仅省去了在PS1的附加文本,但也会改变你的PATH,REM从PATH中检查顶层脚本目录。所以,你必须给Canopy安装的任何脚本的完整路径来运行它们。 – punchagan 2013-04-12 07:19:21

1

注释掉

if子句的行56--70

〜/库/ Enthought/Canopy_64bit /用户/箱/激活

+4

或者设置环境变量'VIRTUAL_ENV_DISABLE_PROMPT = TRUE;在您的.bashrc或者.bash_profile中。 – punchagan 2013-04-12 07:17:37

7

为了详细说明以前的答案:树冠是基于3-图层系统中,第0层包含Canopy GUI工作的最小值;第1层包含所有“系统”软件包,这些软件包随Canopy一起发布,并可能在新版本发布时更新;最后,第2层是“用户”环境,用户可以安装他们喜欢的任何软件包。通过这种方式,如果用户安装了打破Canopy的软件包,则可能会始终回退到第1层,甚至第0层以执行系统重置。

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

一个激活使用其“激活”脚本的虚拟环境,其中冠层确实在.bash_profile线

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

通过DJon指出。

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

punchagan解决方案只需停用默认virtualenv提示,使树冠虚拟环境本身的结构

VIRTUAL_ENV_DISABLE_PROMPT=true

+0

是否雨棚安装的virtualenv地方?或者这是由Canopy提供的一些类似virtualenv的行为? virtualenv --help在Canopy的安装中似乎不起作用。 – 2013-05-24 19:42:56

+0

冠层是使用'venv'包即在Python可用的反向移植3.更多信息在https://enthought.zendesk.com/entries/21802240-Use-venv-not-virtualenv-with-Canopy-Python – pberkes 2013-05-29 07:45:28

1

为了摆脱不必要的除了你的bash提示符,郁闭然后打开的
〜 /库/ Enthought/Canopy_64bit /用户/箱/激活在文本编辑器 。注释掉线如下(这些都没有在原来的注释掉):

#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命令,然后重新启动它。提示现在将恢复正常。

0

你并不需要在〜/库/ Enthought/Canopy_64bit /用户/箱/激活完全注释掉这些行。我只是注释掉行

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

PS1="$PS1" 

取代它,就只是让林冠做它必须做的,但摆脱的提示是烦人额外的文本。

最好。

0

编辑激活脚本做了Arkog回答,但如果我只是注释掉我得到了类似的行:

-bash:/用户//库/ Enthought/Canopy_64bit /用户/箱/激活:第60行:附近意外的标记else' -bash: /Users/<username>/Library/Enthought/Canopy_64bit/User/bin/activate: line 60:别人的

语法错误,所以我觉得最好还是更换符合:

$ PS1 = $ PS1

+0

注释掉这些行是语法错误,因为if在else之前没有语句。你可以将其替换为“:”字符(bash的NOP语句)或“真”。您应该从替换开始时删除'$',这样不会导致另一个语法错误。 – 2013-05-24 19:19:30