Проблема 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
Тогда это должно работать