2015-09-07 4 views
1

Прежде всего, если кто-нибудь может помочь изменить необходимые пути на других машинах (окнах), чтобы его можно было использовать там, я был бы очень благодарен.Невозможно активировать virtualenv через скрипт bash

Виртуальный вентилятор находится на git.

Я запускаю проект внутри virtualenv в python. Вот путь к virtualenv.

~/iss/issp/bin 

Проблема заключается в том, когда я пытаюсь запустить скрипт реактивировать с:

source activate 

оно проливает следующее сообщение об ошибке.

:~/iss/issp/bin$ source activate 
: command not found 
bash: activate: line 4: syntax error near unexpected token `$'{\r'' 
'ash: activate: line 4: `deactivate() { 

Вот код внутри сценария:

# This file must be used with "source bin/activate" *from bash* 
# you cannot run it directly 

deactivate() { 
    unset pydoc 

    # reset old environment variables 
    if [ -n "$_OLD_VIRTUAL_PATH" ] ; then 
     PATH="$_OLD_VIRTUAL_PATH" 
     export PATH 
     unset _OLD_VIRTUAL_PATH 
    fi 
    if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then 
     PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME" 
     export PYTHONHOME 
     unset _OLD_VIRTUAL_PYTHONHOME 
    fi 

    # This should detect bash and zsh, which have a hash command that must 
    # be called to get it to forget past commands. Without forgetting 
    # past commands the $PATH changes we made may not be respected 
    if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then 
     hash -r 2>/dev/null 
    fi 

    if [ -n "$_OLD_VIRTUAL_PS1" ] ; then 
     PS1="$_OLD_VIRTUAL_PS1" 
     export PS1 
     unset _OLD_VIRTUAL_PS1 
    fi 

    unset VIRTUAL_ENV 
    if [ ! "$1" = "nondestructive" ] ; then 
    # Self destruct! 
     unset -f deactivate 
    fi 
} 

# unset irrelevant variables 
deactivate nondestructive 

VIRTUAL_ENV="/home/pablo/issp" 
export VIRTUAL_ENV 

_OLD_VIRTUAL_PATH="$PATH" 
PATH="$VIRTUAL_ENV/bin:$PATH" 
export PATH 

# unset PYTHONHOME if set 
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) 
# could use `if (set -u; : $PYTHONHOME) ;` in bash 
if [ -n "$PYTHONHOME" ] ; then 
    _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME" 
    unset PYTHONHOME 
fi 

if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then 
    _OLD_VIRTUAL_PS1="$PS1" 
    if [ "x" != x ] ; then 
     PS1="$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 

alias pydoc="python -m pydoc" 

# This should detect bash and zsh, which have a hash command that must 
# be called to get it to forget past commands. Without forgetting 
# past commands the $PATH changes we made may not be respected 
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then 
    hash -r 2>/dev/null 
fi 

Любая помощь очень ценится. Большое спасибо.

ответ

0

Только что была та же проблема, и решил сделать hexdump -C bin/activate, чтобы выяснить. Оказывается, мой файл bin/activate имеет CR/LF-строки, а не только CR, а их изменение (tr -d '\r' < bin/activate) > bin/activate исправил мою проблему.

0

Может быть, у вас есть псевдоним в файле .bashrc, поэтому Деактивировать принимает как команды, а не как функцию

вместо

deactivate() { 

использование этого

function deactivate() { 
Смежные вопросы