Получение виртуальной ошибки Python Env после установки Lion - PullRequest
26 голосов
/ 06 августа 2011

Я давно не трогал 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 ]

41 голосов
/ 18 октября 2011

Я полный новичок в 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, чтобы увидеть локальные пакеты в этой виртуальной среде). Я думаю.
22 голосов
/ 04 июня 2014

Мое решение в 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

6 голосов
/ 07 августа 2011

Вы установили virtualenv для Python, который вы используете?Если вы используете стандартную систему Apple Python 2.7, поставляемую по умолчанию, она не поставляется с предустановленным пакетом virtualenv.Используйте /usr/bin/easy_install для его установки.

ОБНОВЛЕНИЕ: Для ясности, на Lion 10.7 теперь есть поставляемый Apple Python 2.7, который является версией по умолчанию при использовании /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.

5 голосов
/ 15 августа 2012

Blankman,

Я столкнулся с той же ошибкой, но моя проблема в ретроспективе была простой, я делюсь своей работой ниже.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 исправила проблему для меня.

HTH.

Для уточнения.Я установил python 2.7.2 с помощью brew и объединил его с virtualenv, чтобы лучше управлять средами разработки.Я стараюсь держаться подальше от предустановленных настроек как можно больше.

2 голосов
/ 29 октября 2011

Чтобы устранить вторую проблему, вам следует переустановить setuptools.

И чтобы исправить первый, просто установите virtualenvwrapper с этим.

По сути, когда вы устанавливаете Lion, вам придется переустанавливать все ваши пакеты сайта python.

1 голос
/ 01 ноября 2013

да, после обновления до marvericks необходимо снова установить pip и virtualenv с помощью /usr/bin/easy_install.

1 голос
/ 20 июля 2013

Для всех, кто тянет за волосы ... Я получал ту же ошибку, но только при попытке scp (безопасное копирование) на один из моих других маков.Мне потребовалось некоторое время, чтобы понять, что сообщение на самом деле относится к Mac, на котором я выполняю вход. Поскольку os x .bash_profile запускается при входе в систему, и я неправильно определял свой файл .bashrc из .bash_profile, чтобы подобрать параметры средыочертания.Поэтому убедитесь, что эти настройки установлены и для машины, в которую вы входите.

1 голос
/ 03 сентября 2012

Мне пришлось переустановить setup-tools (в данном случае яйцо Python 2.7 для Mountain Lion), а затем я смог переустановить pip, а затем virtualenv.

0 голосов
/ 06 ноября 2014

Я получил это после обновления до Йосемити.Чтобы исправить я должен был запустить:

sudo pip install --upgrade setuptools
...