Получение виртуальной 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
Ответы
Ответ 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