2013-04-11 6 views
5

У меня есть основной вопрос терминала. Я только что установил Canopy enthought для Python на Snow Leopard, и (Canopy 64bit) постоянно появляется, когда я работаю над командной строкой.Дисплей «Canopy» в командной строке

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)" от показа?

ответ

1

Он находится в .bash_profile. Но вам, вероятно, придется выйти из системы и вернуться, чтобы она вступила в силу, как только вы ее удалите.

При установке вы можете установить Canopy в свою среду python по умолчанию. К сожалению, похоже, что нет способа изменить это в настройках приложения.

+0

Это не только удаляет дополнительный текст в PS1, но также изменяет ваш PATH, remo ving каталог сценариев навеса из вашего PATH. Таким образом, вам нужно будет предоставить полный путь к любым скриптам, установленным Canopy для их запуска. – punchagan

1

закомментировать, если положение на линии 56--70 в

~/Library/Enthought/Canopy_64bit/пользователя/бен/активировать

+4

Или установите переменную окружения 'VIRTUAL_ENV_DISABLE_PROMPT = true' в вашем .bashrc или .bash_profile. – punchagan

7

Выработать предыдущих ответов: Canopy основана на 3- слои, уровень 0 содержит минимальный минимум для GUI Canopy для работы; слой 1 содержит все пакеты «Система», которые распространяются с Canopy и могут обновляться при выходе новых версий; наконец, уровень 2 - это «Пользовательская» среда, в которой пользователи могут установить любой пакет, который им нравится. Таким образом, если пользователь устанавливает пакет, который разбивает Canopy, всегда можно вернуться к слою 1 или даже к слою 0 для сброса системы.

Управление тремя слоями осуществляется с использованием популярной библиотеки, virtualenv. В virtualenv вы можете создавать изолированные среды Python со своим набором библиотек. Например, если вы разрабатываете несколько приложений, для каждого из которых требуются конфликтующие пакеты, вы можете развить их в отдельных виртуальных средах. Используя virtualenv, Canopy может сделать то же самое: у вас может быть несколько условий «Пользователь» (хотя эта функция пока не отображается через GUI).

One активирует виртуальную среду, используя его "Activate" сценарий, который делает Навес в .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

+0

Может ли Canopy установить virtualenv где-нибудь? Или это какое-то частично виртуальное поведение, предоставляемое Canopy? virtualenv --help, похоже, не работает в моей установке Canopy. –

+0

Canopy использует backport пакета 'venv', который доступен на Python 3. Дополнительная информация на https://enthought.zendesk.com/entries/21802240-Use-venv-not-virtualenv-with-Canopy-Python – pberkes

1

Чтобы избавиться от нежелательного дополнения к Баш строке, рядом Canopy и затем открыть
~/Library/Enthought/Canopy_64bit/Пользователь/bin/активировать в текстовом редакторе. Выделите строки следующим образом (они не закомментированы в оригинале):

#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

Вам не нужно полностью прокомментировать эти строки в ~/Library/Enthought/Canopy_64bit/User/bin/activate. Я просто закомментировать строку

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

и заменил его

PS1="$PS1" 

так что вы просто дайте Навес делать то, что он должен делать, но избавиться от anoying дополнительного текста в строке.

Лучший.

0

Редактирование сценария Activate работает как ответил Arkog, но если когда я просто закомментировать строку, я получил что-то вроде:

-bash:/Users // Library/Enthought/Canopy_64bit/пользователя/бен/активировать: строка 60: ошибка синтаксиса около неожиданной лексемы else' -bash: /Users/<username>/Library/Enthought/Canopy_64bit/User/bin/activate: line 60: еще»

Так что я нашел, что лучше просто заменить эту строку с:

$ PS1 = $ PS1

+0

Комментирование строк является синтаксической ошибкой, потому что if не имеет инструкции перед else. Вы можете заменить его символом ':' (инструкция bash NOP) или 'true'. Вы должны удалить «$» с начала вашей замены, чтобы не вызвать другую синтаксическую ошибку. –