Получение виртуальной ошибки Python En v после установки Lion
Я некоторое время не касался python и virtualenv, и, полагаю, я настроил свой MBP с помощью virtualenv и pip, но совершенно забыл, как работает этот материал.
После установки Lion я получаю эту ошибку при открытии нового окна терминала:
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.
Любые советы о том, как это исправить?
Попытка:
событийная запись easy_install
Я получил это:
Traceback (most recent call last):
File "/usr/local/bin/easy_install", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 2607, in <module>
parse_requirements(__requires__), Environment()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 565, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: setuptools==0.6c11
9 ответов
Я полный начинающий Python/Virtualenv. Однако у меня была точно такая же проблема, и я нашел решение, которое сработало для меня. Я считаю, что это будет сильно зависеть от того, как вы изначально настроили Python и Virtualenv.
В моем случае, обновление Lion полностью уничтожило все содержимое моего /Library/Python/2.*/site-packages
, но оставили испорченные исполняемые файлы (которые ссылаются на содержимое этой папки) в /usr/local/bin
, Я считаю, что это является основной причиной загадочных ошибок импорта без модуля.
Просматривая мою.bash_history, я изначально использовал easy_install
установить pip
, а потом pip
установить virtualenv
а также virtualenvwrapper
, После того, как я повторил эти шаги, я смог снова войти в мои старые виртуальные среды, которые все еще содержали все пакеты, которые я установил на 10.6. Обратите внимание, что 10.6 поставляется с Python 2.6 по умолчанию. Если ваши пакеты требуют Python 2.6, вы должны сначала изменить версию Python по умолчанию на 2.6.
Шаг за шагом:
- Я удалил старые команды конфигурации Virtualenv из сценариев запуска оболочки (например,
.bash_profile
). Начать новый сеанс терминала. - (необязательно) Выберите версию Python, которую вы хотите использовать, например,
defaults write com.apple.versioner.python Version 2.6
sudo easy_install pip
, Кажется как будто/Library/Python/2.*/site-packages
теперь требуются права администратора. Я не помню, чтобы это было в 10.6 (или, по крайней мере, моя история bash не отражает это).sudo pip install virtualenv
sudo pip install virtualenvwrapper
- Наконец, я снова включил те команды конфигурации virtualenv, которые я отключил на шаге 1. В новом сеансе терминала все было так, как было (посмотрите на
pip freeze -l
чтобы увидеть локальные пакеты в этой виртуальной среде). Я думаю.
Мое решение в Ubuntu 14.04, где я установил python3.4, было добавить это в файл ~/.bashrc, чтобы его хвост выглядел примерно так:
#Setup virtual envwrapper for python in case default doesn't work
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4
export VIRTUALENVWRAPPER_PYTHON
# needed for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/projects
source /usr/local/bin/virtualenvwrapper.sh
Когда я сделал pip freeze
на обычном python, который был 2.7, он показал, что пакеты установлены правильно, но все еще жаловались. Хотя это жаловалось, что virtualenv сработал.
Позже я удалил ошибки, убедившись, что все файлы в ~/.virtualenvs принадлежат пользователю и группе, а не сводят их к корню. Как это:
bash
cd ~
sudo chown -R ubuntu:ubuntu .virtualenvs
Вы установили virtualenv
для Питона, который вы используете? Если вы используете стандартную систему Apple Python 2.7, поставляемую по умолчанию, она не поставляется с virtualenv
пакет предустановлен. использование /usr/bin/easy_install
установить его.
ОБНОВЛЕНИЕ: Для ясности, на Lion 10.7 теперь есть Python 2.7 от Apple, который является версией по умолчанию, когда вы используете /usr/bin/python
, Apple продолжает выпускать Python 2.6 и 2.5 в Lion, как это было в 10.6 Snow Leopard. Вы можете выбрать, какую версию вы хотите, явно ссылаясь на нее, как в /usr/bin/python2.7
, /usr/bin/python2.6
и т. д., и вы можете изменить по умолчанию, что /usr/bin/python
использует; прочитайте справочную страницу Apple (man python
) для деталей. Ключевым моментом, однако, является то, что, как правило, пакеты Python устанавливаются для конкретной версии. Если вы установили что-то для 2.6, вам нужно установить это с python2.7 (или easy_install-2.7
) если вы хотите использовать его с 2.7.
Бланкмэн,
Я столкнулся с той же ошибкой, но моя проблема в ретроспективе была простой, я делюсь своей работой ниже. YMMV.
Я использовал (home)brew для установки python 2.7.2 и использую его по умолчанию. На него ссылаются через / usr / local / bin / python. Стандартная версия Python, поставляемая с Mac OS X Lion, указана в каталоге / usr / bin / python.
-
Сценарий запуска virtualwrapper.sh проверил переменную среды VIRTUALENVWRAPPER_PYTHON и, если она пуста, заполнил ее переменной / usr / local / bin / python. Это было причиной моей ошибки. Инициализация его в / usr / local / bin / python исправила проблему для меня.
НТН.
Чтобы уточнить. Я установил python 2.7.2 с помощью brew и объединил его с virtualenv, чтобы лучше управлять средами разработки. Я стараюсь держаться подальше от предустановленных настроек настолько, насколько могу.
Чтобы решить вторую проблему, вам следует переустановить setuptools.
И чтобы исправить первый, просто установите virtualenvwrapper с этим.
По сути, когда вы устанавливаете Lion, вам придется переустанавливать все ваши пакеты сайта python.
Мне пришлось переустановить setup-tools (в данном случае яйцо Python 2.7 для Mountain Lion), а затем я смог переустановить pip, а затем virtualenv.
Для тех, кто тянет за волосы... Я получал ту же ошибку, но только при попытке scp (безопасное копирование) на один из моих других маков. Мне потребовалось некоторое время, чтобы осознать, что сообщение на самом деле относится к Mac, на котором я выполняю вход. Поскольку os x .bash_profile запускается при входе в систему, и я не правильно использовал свой.bashrc из.bash_profile, чтобы подобрать параметры среды Ned очертания. Поэтому убедитесь, что эти настройки установлены и для машины, на которой вы входите.
Да, после обновления до marvericks необходимо снова установить pip и virtualenv с помощью /usr/bin/easy_install.
Я получил это после обновления до Йосемити. Чтобы исправить я должен был бежать:
sudo pip install --upgrade setuptools