2013-08-28 7 views
3

Моя ткань файл:команда workon не найдена при использовании ткани

def deploy(): 
    code_path = 'mysite/public_html/mysite' 
    with cd(code_path): 
     with prefix("workon mysite"): 
     run('git pull') 
     run('supervisorctl -c ~/supervisord.conf restart ' + env.host_string) 

Я получаю следующее сообщение об ошибке:

Aborting. 
[myserv] out: /bin/bash: workon: command not found 

Очевидно workon команда работает, когда я делаю это вручную (без ткани). Я подозреваю, что /usr/local/bin/virtualenvwrapper.sh не является источником (обычно он запускается через .bash_profile).

Что нужно сделать, чтобы получить команду workon?

+0

Вы пробовали запуск workon ЦМД на машине вы запускаете команду ткани на с тем же пользователем? – Greg

ответ

7

Попробуйте изменить свой префикс:

with prefix(". /usr/local/bin/virtualenvwrapper.sh; workon mysite"): 
+0

Спасибо за полезную информацию. Я бы даже сказал 'с префиксом ('. /usr/local/bin/virtualenvwrapper.sh'):' then' с префиксом ('workon project'): ' –

+1

Хорошо, это работает, но не объясняет, почему это не работа по умолчанию. Для меня bashrc выполняется, но команда workon недоступна. Странно. –

2

вы должны скопировать этот virtualwrapper код загрузки из .bashrc в .bash_profile файл или, если не существует создать новый .bash_profile файл и скопировать туда.

код скопировать ::

export WORKON_HOME=/home/virtual 
source /usr/local/bin/virtualenvwrapper.sh 

эта ошибка случается потому, что .bashrc только для чтения оболочкой, это и интерактивные и не Войти. Таким образом, в этом случае это не интерактивная оболочка без входа, поэтому она не будет работать. поэтому мы должны скопировать их в файл .bash_profile.

reference link

Смежные вопросы