Подтвердить что ты не робот

Нет модуля с именем "virtualenvwrapper"

Я работаю над созданием проекта Django на Amazon EC2 с экземпляром LTS Ubuntu 14.04. Я хочу написать свой код с помощью Python 3. Мне сообщили, что лучший способ сделать это - использовать virtualenvwrapper. Я установил virtualenvwrapper успешно и поместил

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

в мой файл .bashrc. Теперь я вижу:

 /usr/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportErro
 r'>: No module named 'virtualenvwrapper')
 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/bin/python3.4 and that PATH is
 set properly.

Как я могу это исправить?

4b9b3361

Ответ 1

Вместо указания другого интерпретатора python с флагом -p вы также можете настроить желаемый интерпретатор по умолчанию.

Согласно virtualenvwrapper документации, virtualenvwrapper.sh находит первые python и virtualenv программы на $PATH и помнит, как их использовать позже.

Если ваш virtualenvwrapper не установлен в интерпретаторе python по умолчанию для ОС (/usr/bin/python), убедитесь, что вы переопределите переменные среды, как показано ниже:

  • VIRTUALENVWRAPPER_PYTHON до полного пути вашего интерпретатора python
  • VIRTUALENVWRAPPER_VIRTUALENV до полного пути к virtualenv

Например, на моем .bash_profile (Mac):

#virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenv
source /Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenvwrapper.sh

Перезагрузите новые переменные, запустив source ~/.bash_profile

Ответ 2

Следуя совету Джона, я побежал:

 [email protected]:~$ mkvirtualenv -p /usr/bin/python3.4 env1
 Running virtualenv with interpreter /usr/bin/python3.4
 Using base prefix '/usr'
 New python executable in env1/bin/python3.4
 Also creating executable in env1/bin/python
 Installing setuptools, pip...done.
 (env1)[email protected]:~$ deactivate
 [email protected]:~$ ls
 [email protected]:~$ ls -a
 .  ..  .bash_history  .bash_logout  .bashrc  .cache  .pip  .profile  .ssh  .virtualenvs
 [email protected]:~$ workon
 env1
 [email protected]:~$ workon env1
 (env1)[email protected]:~$ which python
 /home/ubuntu/.virtualenvs/env1/bin/python
 (env1)[email protected]:~$  python -V
 Python 3.4.0

Я оставил .bashrc, как указано выше. Как сказал Джон выше, установка virtualenvwrapper устанавливает на python по умолчанию и использует python по умолчанию в любом виртуальном каталоге, который вы создаете, если только флаг -p не используется для указания другого интерпретатора python.

Спасибо, Джон!

Ответ 3

Если вы используете brew для установки python, вам нужно убедиться, что вы установили эту переменную среды:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python

в вашем файле bash_profile (или какой-либо другой оболочке, которую вы используете).