Я использую Mac OS 10.6.8. и хотел установить в дополнение к python 2.6 также python 2.7 и использовать python 2.7 в новом virtualenv. Я выполнил следующие шаги:
Я скачал python 2.7 и установил его:
http://www.python.org/ftp/python/2.7.3/python-2.7.3-macosx10.6.dmg
Затем я запускаю команду для настройки нового виртуального сервера с помощью python2.7:
mkvirtualenv --python=python2.7 mynewenv
Мой .bash_profile выглядит следующим образом:
# needed for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
Теперь, когда я открываю консоль, я получаю следующее сообщение об ошибке.
ImportError: No module named virtualenvwrapper.hook_loader
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is set properly.
В другом посте я также обнаружил, что мне следует обновить virtualenvwrapper. Это не помогло.
sudo pip install virtualenvwrapper --upgrade
Любая помощь будет оценена.
python
virtualenv
virtualenvwrapper
Томас Креммель
источник
источник
easy_install
mkvirtualenv
а затем остановил его (сCtrl+C
). При повторной попытке сделать virtualenv остались некоторые остатки с прошлого раза. Я зашел в свою папку envs и удалил не полностью созданную среду. После этого та жеmkvirtualenv
команда работала исправно.Ответы:
Проблема была решена следующим образом:
#switch the /usr/bin/python link to point to current python link cd /usr/bin sudo mv python python.bak sudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python python
Измените порядок команды экспорта так, чтобы она располагалась перед командами virtualenv в моем файле .bash_profile:
PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH export PATH # needed for virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh
Переустановите инструменты настройки, простую установку и PIP. Очевидно, это необходимо для правильной работы с новой версией Python:
sudo sh setuptools-0.6c11-py2.7.egg sudo easy_install-2.7 pip pip install virtualenv
источник
usr/local/Cellar/python/<PYTHON-VERSION>/bin/
.Кроме того, если у вас есть macports, убедитесь, что
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
он указан перед/Library/Frameworks/Python.framework/Versions/2.7/bin
и/usr/local/bin
в PATH. Затем установите в себе следующее.profile
:источник
VIRTUALENVWRAPPER_PYTHON
решила мою проблему.В моем случае добавление этой строки в мой файл .zshrc помогло,
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7
источник
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/3.6.5/bin/python3.6
для последней версии.export VIRTUALENVWRAPPER_PYTHON="which python3"
Для всех, кто использует Ubuntu 18.04 и Python 3+ , это помогло мне:
which python3 # outputs /usr/bin/python3 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source `which virtualenvwrapper.sh`
источник
Это случилось со мной, и я решил это переустановкой
pip
. Случилось то, чтоwhich pip
дало/usr/bin/pip
результат, аwhich python
дало/usr/local/bin/python
. Путьpip
должен быть/usr/local/bin/pip
. Вероятно, это сломалось, когда я обновил установку Python.Если вы будете следовать документации pip, вы можете легко переустановить ее
pip
для текущей рабочей установки Python. Вам нужно:pip
документации).python get-pip.py
.Это решило проблему для меня.
источник
Есть несколько причин, которые могут вызвать эту ошибку. Если ваша среда
python3
установленной изepel-release
pip3
установлен сpython3.4 get-pip.py
virtualenvwrapper
установлен сpip3
mkvirtualenv -p /usr/bin/python3.4
Затем по какой-либо причине виртуальная среда создается без библиотеки virtualenvwrapper. Вы можете решить эту проблему, просто установив его снова, но на этот раз из virtlualenv
[user@localhost ~] $ mkvirtualenv -p /usr/bin/python3.4 venv Using base prefix '/usr' New python executable in /home/user/.virtualenvs/venv/bin/python3.4 Also creating executable in /home/user/.virtualenvs/venv/bin/python Installing setuptools, pip, wheel...done. virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/predeactivate virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/postdeactivate virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/preactivate virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/postactivate virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/get_env_details /home/user/.virtualenvs/venv/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module named 'virtualenvwrapper') /home/user/.virtualenvs/venv/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module named 'virtualenvwrapper') # the virtualenv should now activated (venv)[user@localhost ~] $ pip install virtualenvwrapper
источник
Мне просто нужно было убедиться, что / usr / local / bin / python существует.
Для меня это было просто:
ln -s /usr/local/bin/python2.7 /usr/local/bin/python
источник
Я получаю ту же ошибку. Выяснилось, что у меня старая версия pip. Я исправил ошибку, просто обновив пипс.
источник
Я только что установил python 3.5, попробовал virtualenvwrapper, а затем возникла эта проблема. Я понял, что python3.5 был установлен,
/usr/local/bin/python3.5
а НЕ/usr/bin/python3.5
. Итак, я изменил свой сценарий .bash_profile, чтобы он выглядел следующим образом, и теперь все работает.# Setting PATH for Python 3.5 # The orginal version is saved in .bash_profile.pysave PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}" export PATH export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.5 export WORKON_HOME=$HOME/.virtualenvs source /Users/bentaub/.virtualenvs/djangodev/bin/virtualenvwrapper.sh
Я достаточно новичок, чтобы не быть уверенным, как этот «локальный» на пути к python3.5 повлияет на меня в долгосрочной перспективе, но на данный момент он работает.
источник
У меня была эта проблема после удаления в
virtualenvwrapper
пакет. Когда я входил в систему под любым пользователем (илиsu
другим), я получал:Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named virtualenvwrapper.hook_loader virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is set properly.
Решением было удалить/etc/bash_completion.d/virtualenvwrapper
файл.Редактировать:
Не удаляйте указанный выше файл, иначе он не будет воссоздан при повторной установке
virtualenvwrapper
. Вместо этого вам нужно будетpurge
установитьvirtualenvwrapper
пакет при его удалении. Вот так в Debian:источник
Попробуйте деинсталлировать
virtualenv
иvirtualenvwrapper
и установите его еще раз , используяpip
в версии 2.7 (я думаю).Я столкнулся с той же ошибкой, и я просто сделал это и решил свою проблему.
Я использую U
источник
Хотя есть принятый ответ, я подумал, что поставлю то, что исправило для меня.
Сначала я установил Python и только что обновил его через Homebrew . Я также использую ZSH, поэтому, если некоторые биты не совсем соответствуют вашему выводу, возможно, поэтому.
Запустив brew info python и просмотрев вывод, я обнаружил следующую полезную информацию:
If you wish to have this formula's python executable in your PATH then add the following to ~/.zshrc: export PATH="/usr/local/opt/python/libexec/bin:$PATH"
Поэтому я добавил это в сценарий запуска моего терминала, как показано, и ошибка n больше не отображается.
Примечание: я вставил это в другую часть моего PATH, и ошибка не исчезла при запуске.
источник
Возникла аналогичная проблема после установки проекта Conda / Anaconda. Этот вопрос был весьма полезен в решении моей проблемы с MAC. При решении проблемы моя
.zshrc
соответствующая часть выглядела следующим образом:export VIRTUALENVWRAPPER_PYTHON=$HOME/Applications/conda/bin/python source $HOME/Applications/conda/bin/virtualenvwrapper.sh
Это зависит от того, где у меня установлен conda, и вам придется это понять в вашем собственном случае. Чтобы получить информацию о вашей среде в зависимости от того, где вы установили anaconda, вы можете использовать следующее:
$ ~/ -name virtualenvwrapper.sh # to see where you have this. May already be prefilled in your shell profile[.zshrc or .profile] $ which python # to know the default python your project or rather where conda has installed python for you
НЕ ЗАБУДЬТЕ УДАЛИТЬ И УСТАНОВИТЬ virtualenv и virtualenvwrapper, как указано в других ответах.
источник
Только что столкнулся с этой проблемой на Centos 7.4.
Ни один из приведенных выше ответов не подходил для моего случая. Немного покопавшись, я обнаружил, что это слишком строгие права доступа к файлам в библиотеках python (я думаю, установка python на Centos немного отличается от других систем POSIX).
Итак, если все остальное не удается, вы можете проверить, доступны ли ваши библиотеки python для чтения пользователю, с которым вы пытаетесь запустить virtualenvwrapper.
В частности, проверьте:
/usr/lib/python3.6 /usr/lib64/python3.6
(измените пути для разных версий python).Если вы видите это
group
иothers
не имеете прав на чтение и выполнение, добавьте их:sudo chmod og+rx -R /usr/lib/python3.6 sudo chmod og+rx -R /usr/lib64/python3.6
Примечание: я не уверен, работает ли это против политики безопасности Centos, но, вероятно, это безопасно, если вы не дадите
write
разрешения.источник
В моей ситуации (OS X 10.13.6) это сделало
источник
У меня была та же проблема, что и у этой, и я потратил так много времени на настройку того, что было не так. И я наконец выяснил, в чем дело.
Сначала я поискал, где находится папка virtualenvwrapper. В моем случае /usr/local/lib/python3.7/site-packages. Внутри папки находится файл hook_loader.py, вызвавший ошибку.
Далее я использовал скрипт на Python.
python3 import sys;print('\n'.join(sys.path))
Мне не удалось найти каталог /usr/local/lib/python3.7/site-packages, поэтому, наконец, я написал:
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.7/site-packages
в файл .bashrc. Готово.
Значение PYTHON PATH
Как вы можете видеть по ссылке выше, PYTHONPATH увеличивает путь поиска по умолчанию для модулей.
источник