2013-04-11 36 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