Получение виртуальной ошибки 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.

Шаг за шагом:

  1. Я удалил старые команды конфигурации Virtualenv из сценариев запуска оболочки (например, .bash_profile). Начать новый сеанс терминала.
  2. (необязательно) Выберите версию Python, которую вы хотите использовать, например,
    defaults write com.apple.versioner.python Version 2.6
  3. sudo easy_install pip, Кажется как будто /Library/Python/2.*/site-packages теперь требуются права администратора. Я не помню, чтобы это было в 10.6 (или, по крайней мере, моя история bash не отражает это).
  4. sudo pip install virtualenv
  5. sudo pip install virtualenvwrapper
  6. Наконец, я снова включил те команды конфигурации 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
Другие вопросы по тегам