Проблема Python virtualenvwrapper при запуске хуков инициализации

На новой установке 16.04 я пытаюсь установить virtualenvwrapper, следуя этому замечательному ответу Герхарда Бургера.

после настройки .bashrcпри каждом открытии терминала отображается

bash: /usr/local/bin/python2.7: No such file or directory
virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 and that PATH is
set properly.

расположение сценария

$ sudo find / -name virtualenvwrapper.sh
[sudo] password for john: 
/usr/local/bin/virtualenvwrapper.sh

содержимое моего .bashrc являются,

export WORKON_HOME=/home/john/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
export PIP_VIRTUALENV_BASE=/home/john/.virtualenvs

вот мой pip freeze

cffi==1.5.2
greenlet==0.4.9
pbr==1.10.0
readline==6.2.4.1
six==1.10.0
stevedore==1.15.0
virtualenv==15.0.2
virtualenv-clone==0.2.6
virtualenvwrapper==4.7.1

расположение интерпретатора Python,

$ which python
/usr/bin/python

Как мне заставить это работать?

благодарю вас.

5 ответов

Я использую Ubuntu Server 16.04. Вы также должны экспортировать интерпретатор Python, в котором вы установили virtualenvwrapper.

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=~/.virtualenvs
source /home/vagrant/.local/bin/virtualenvwrapper.sh

так как у меня есть несколько установок Python.

В .bashrc изменение

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

а затем заставить его работать в текущей оболочке с помощью

source /usr/local/bin/virtualenvwrapper.sh 

После этого измените virtualenvwrapper.sh

VIRTUALENVWRAPPER_PYTHON="$(command \which python)"

к этому

VIRTUALENVWRAPPER_PYTHON="$(command \which python3)"

Просто комментарий

источник /usr/local/bin/virtualenvwrapper.sh

линия в

~/.Bashrc

файл.... у меня это сработало.

Возможно, вам нужно обновить переменную окружения PYTHONPATH. В вашем.bashrc перед всеми переменными virtualenvwrapper добавьте следующую строку:

export PYTHONPATH=${PYTHONPATH}:/usr/bin

Сначала проверьте PATH в .bashrc с помощью следующих команд:

      which virtualenv

which virtualenvwrapper.sh

вывод:

      echo $VIRTUALENVWRAPPER_PYTHON

а также

      which python3

должно быть таким же, как

/USR/бен/python3

Настройте путь в соответствии с приведенными выше результатами.

экспорт WORKON_HOME=~/.virtualenvs

экспорт MY_PROJECT=~/my_proj

экспорт VIRTUALENVWRAPPER_WORKON_CD=1

экспорт VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

export VIRTUALENVWRAPPER_VIRTUALENV='результат которого virtualenv'

source 'результат которого virtualenvwrapper.sh'

если после проверки пути все еще ОСТАЕТСЯ ОШИБКА ИНИЦИАЛИЗАЦИИ HOOK.

Затем в исходном коде все осталось так, как это просто заменить virtualenvwrapper.shс virtualenvwrapper_lazy.sh

Тогда это должно работать

Другие вопросы по тегам