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

Получение виртуальной env-ошибки python после установки Lion

Я не касался python и virtualenv через некоторое время, и я считаю, что я устанавливаю свой MBP с помощью virtualenv и pip, но полностью забыл, как это работает.

После установки льва я получаю эту ошибку, когда открываю новое окно терминала:

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 eventlet

Я получил это:

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
4b9b3361

Ответ 1

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

Ответ 2

Мое решение на 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, он показал, что пакеты установлены правильно, но все еще жаловались. Несмотря на то, что он жаловался, что виртуальный работал.

Я позже удалил ошибки, убедившись, что все файлы в ~/.virtualenvs принадлежат пользователю и группе, а не простому их root. Вот так:

bash cd ~ sudo chown -R ubuntu:ubuntu .virtualenvs

Ответ 3

Установили ли вы virtualenv для Python, который используете? Если вы используете систему 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.

Ответ 4

Бланкмэн,

Я столкнулся с той же ошибкой, но моя проблема в ретроспективе была простой, я делюсь своей работой ниже. YMMV.

Я использовал (home) brew для установки python 2.7.2 и использую его как мой по умолчанию. Он ссылается через /usr/local/bin/python. Установка python на складе, поставляемая с Mac OS X Lion, указана в /usr/bin/python.

-

Запуск virtualwrapper.sh script проверял переменную окружения VIRTUALENVWRAPPER_PYTHON и пуст и заполнял ее "/usr/local/bin/python". Это стало причиной моей ошибки. Инициализация его для '/usr/local/bin/python' исправила проблему для меня.

НТН.

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

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

Ответ 9

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

sudo pip install --upgrade setuptools