Я использую virtualenv
, virtualenvwrapper
, zsh
, oh-my-zsh
, терминатор, на CrunchBang.
Я пытаюсь отобразить название текущего virtualenv
как
workon example
(example)...
Я перепробовал много решений, ни одно из которых, похоже, не работает, вот мой файл .zshrc , я знаю, нет ничего сложного, чтобы исправить это, но я не могу найти правильное решение. Прошло много времени с тех пор, как я в последний раз использовал Linux для разработки Django, я забыл, что делал раньше.
Прямо сейчас, я вижу username@crunchbang
, я не могу сказать, какой virtualenv я использую.
zsh
python
oh-my-zsh
virtualenv
Lynob
источник
источник
Ответы:
Подсказка Shell
Внутри вашей
virtualenv
среды есть файлbin/activate
. Вы можете отредактировать этот файл, чтобы изменить ваше приглашение так, как вы хотите, чтобы оно выглядело. Конкретно этот раздел файла:Переменная
PS1
является специальной переменной, которая управляет тем, как будет выглядеть приглашение оболочки. Изменение его значения изменит вашеvirtualenv
приглашение:пример
Создайте пример среды.
Когда вы используете,
virtualenv
вы обычно исходный код этого файла.После внесения вышеуказанных изменений в переменную
PS1
вbin/activate
файле мое приглашение теперь выглядит так:Вот официальные инструкции о том, как это сделать .
источник
activate
файл? Ваш файл работал нормально для меня.virtualenv
кроме того, что я ничего не вижу, может быть, это.zshrc
проблема илиvirtualenvwrapper
? можно ли отладить эту проблему? пожалуйста, обратите внимание, у меня есть 2 исполняемых файла virualenv, нормальный,virtualenv
иvirtualenv-2.7
это нормально, или онvirtualenv
был загружен дважды? и вот как я установил virtualenv и virualenvwrapper на случай, если это имеет значениеsudo pip install virtualenv
zsh
и он тоже с этим работает, так что это, скорее всего, env. вопрос. Давайте пока проигнорируем 2 установки virtualenv. Для отладки вы можете включить егоset -x
в своей оболочке, а затем еще раз запуститьsource activate
команду. Вы должны увидетьPS1=
строки, где устанавливается приглашение.Если вы используете
virtualenvwrapper
иzsh
в вашем~/.virtualenvs/
каталоге есть несколько хуков zsh, которые вы можете использовать для настройки вашей среды. Вот немного информации об этом. Вы можете принудительно установить обновлениеPS1
, которое добавит текущую работуvirtualenv
к приглашению оболочки, добавив:к
~/.virtualenvs/postactivate
. Чтобы удалить тег, когда выdeactivate
, добавьте:в
~/.virtualenvs/postdeactivate
Единственная (правдоподобная) вещь, которая должна это сломать, это выделение ресурсов
~/.zshrc
во время работы вvirtualenv
источник
Вам не нужно редактировать свой
~/.zshrc
.Поскольку вы работаете с
virtualenvwrapper
, можно добавлять опции или хуки к$WORKON_HOME/post(de)activate
файлам.Если вы хотите увидеть более подробную информацию, проконсультируйтесь здесь .
Приведенная выше ссылка позволяет мне сделать следующее:
В моем случае,
$WORKON_HOME=~/Envs
потому что я изменил этот путь, когда я установил virtualenvwrapper; если нет, у вас должна быть папка~/.virtualenvs
.Откройте файл,
postactivate
расположенный в$WORKON_HOME
Добавьте эти строки:
Сохранить и наслаждаться!
Вы получите что-то вроде этого:
(НЕОБЯЗАТЕЛЬНО) Если вы хотите, вы можете отредактировать
postdeactivate
файл, добавив эту строку:источник
Я просто протестировал его на Ubuntu 14.04, и у меня была такая же проблема. Чтобы исправить это, добавьте это в свой .zshrc
или запустите это в терминале
В Mac OS XI пришлось сделать
источник
Если вы знаете используемую тему, вы можете добавить функцию для извлечения активированного базового имени VIRTUAL_ENV и использовать ее в переменной PROMPT в файле * .zsh-theme, расположенном в ~ / .oh-my-zsh / themes / и это должно сработать!
Для меня это была тема «oh-my-zsh» по умолчанию, то есть «robbyrussels», которая была настроена.
Добавление приведенного выше кода привело к следующему результату:
(kunkka.com) - это virtualenv, который я только что отключил.
После редактирования файла темы не забудьте указать исходный файл .zshrc.
источник