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

Проблема с virtualenv в Mac OS X

Я установил virtualenv через pip и получаю эту ошибку после создания новой среды:

selenium:~ auser$ virtualenv new  
New python executable in new/bin/python  
ERROR: The executable new/bin/python is not functioning  
ERROR: It thinks sys.prefix is u'/System/Library/Frameworks/Python.framework/    Versions/2.6' (should be '/Users/user/new')  
ERROR: virtualenv is not compatible with this system or executable  

В моей среде:

PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages  
PATH=/System/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin  

Как я могу это исправить?

Спасибо.

4b9b3361

Ответ 1

Если у вас по-прежнему возникают проблемы с virtualenv, вы можете попробовать pythonbrew. Это альтернативное решение той же проблемы. Это больше похоже на Ruby rvm: он создает и создает весь экземпляр Python под $HOME/.pythonbrew, а затем устанавливает некоторые bash функции, которые позволяют легко переключаться между версиями. Где virtualenv затеняет системную версию Python, используя символические ссылки как часть своего решения, pythonbrew строит полностью автономные установки Python.

Я использовал virtualenv годами. Это достойное решение, но я переключился на pythonbrew в последнее время. Наличие полностью автономных экземпляров Python означает, что установка нового занимает некоторое время (поскольку pythonbrew фактически компилирует Python с нуля), но автономный характер каждой установки обращается ко мне. И диск дешев.

Ответ 2

На всякий случай кто-то все еще ищет ответ.

Я столкнулся с этой же проблемой только сегодня и понял, что, поскольку у меня уже установлен Anaconda, я не должен был использовать pip install virtualenv для установки виртуальной среды, так как это дало бы мне сообщение об ошибке при попытке инициировать его позже. Вместо этого я попробовал conda install virtualenv, затем ввел virtualenv env_mysite и проблема была решена.

Ответ 3

Если кто-то в будущем столкнется с этой проблемой, это вызвано тем, что ваш дистрибутив Python по умолчанию является conda. У Conda есть собственный виртуальный env настроить процесс, но если у вас есть дистрибутив panda на conda и все еще хотите использовать virtualenv здесь, то как:

  • Найдите другой дистрибутив python на вашем компьютере: ls -ls /usr/bin/python*

  • Обратите внимание на доступную версию python, которая не является conda и запускает код ниже (примечание для python 3 и выше вам нужно сначала обновить virtualenv): virtualenv -p python2.7(or your python version) flaskapp

Ответ 4

Я сам столкнулся с этой проблемой. Я записал инструкции в README, которые я вставил ниже....

Я нашел, что есть две вещи, которые работают:

  • Убедитесь, что вы используете последнюю версию virtualenv (1.5.1 из этого файла)
  • Если вы используете несистемный Python в качестве своего стандартного Python (на котором должен проверяться python) Настройте его с помощью System.

    Вместо virtualenv thing используйте /usr/bin/python2.6 PATH/TO/VIRTUALENV thing (или что-то еще which python, возвращенное вам) - вот что он сделал для меня, когда я столкнулся с этой проблемой)

Ответ 5

Как упоминалось в @RyanWilcox, вы можете непреднамеренно указать virtualenv на неправильную установку Python. Virtualenv поставляется с флагом -p, чтобы указать, какой интерпретатор использовать.

В моем случае

virtualenv test_env

сбросила ту же ошибку, что и ваша, а

virtualenv -p python test_env

работал отлично.

Если вы вызываете virtualenv -h, документация для флага -p сообщит вам, какой питон он считает, что он должен использовать; если он выглядит неуклюжим, попробуйте пройти -p python. Для справки, я на virtualenv 1.11.6.

Ответ 6

У меня была такая же проблема, и, как я вижу сейчас, это было вызвано запутанной установкой Python. У меня есть OS X, установленный более года с тех пор, как я купил новый ноутбук, и я уже несколько раз устанавливал и переустанавливал Python с использованием разных источников (официальные двоичные файлы, homebrew, официальные двоичные файлы + ручные настройки, как описано здесь). Не спрашивайте меня, почему я это сделал, я всего лишь несчастный новичок, считающий, что все будет исправлено после переустановки.

Итак, у меня было несколько разных Pythons, установленных здесь и там, а также множество жестких ссылок, указывающих на них непоследовательно. В конце концов, я устал от всех, и переустановил OS X тщательно очистил систему от всех найденных Python с помощью утилиты find. Кроме того, я отсоединил все ссылки, указывающие на любой Python. Затем я установил новый Python, используя homebrew, установил virtualenv, и теперь все работает как прелесть.

Итак, мой рецепт:

sudo find / -iname "python*" > python.log

Затем проанализируйте этот файл, удалите и отмените все, что связано с версией Python, вам нужно, переустановите его (я сделал это с помощью homebrew, возможно, официальная установка также будет работать) и наслаждайтесь. Убедитесь, что вы отключили все связанные с python из /usr/bin и /usr/local/bin, а также удалите все экземпляры Frameworks/Python.framework/Versions/<Your.Version> в /Library и /System/Library.

Это может быть грязный хак, но это сработало для меня. Я предпочитаю не хранить все системные библиотеки Python, кроме pip и virtualenv, и создавать виртуальные среды для всех моих проектов, поэтому мне не нужно удалять важные библиотеки. Если вы не хотите удалять все, по-прежнему пытайтесь понять, являются ли ваши Pythons, какие ссылки указывают на них и откуда. Тогда подумайте, что может вызвать проблему и исправить ее.

Ответ 7

Я столкнулся с вариацией этой "неработающей" ошибки. Я пытался создать среду в папке, которая включала путь ".../Programming/Developing...", который на самом деле "/Users/eric/Documents/Programming: Developing/"

и получил эту ошибку:

ImportError: No module named site
ERROR: The executable env/bin/python2.7 is not functioning
ERROR: It thinks sys.prefix is u'/Users/eric/Documents/Programming:Developing/heroku' (should be u'/Users/eric/Documents/Programming:Developing/heroku/env')
ERROR: virtualenv is not compatible with this system or executable

Я пробовал то же самое в другой папке, и он работал нормально, никаких ошибок и env/bin не было, что я ожидаю (активировать и т.д.).

Ответ 8

Вышеупомянутые решения не удались для меня, но следующие работы:

python3 -m venv --without-pip <ENVIRONMENT_NAME>
. <ENVIRONMENT_NAME>/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
deactivate

Это взломанный, но да, основная проблема действительно выглядела как пип.

Ответ 9

Вкл. на OSX 10.6.8 leopard, после того, как "обновил" до Lion, затем снова понизился (ouch - AVOID!), я прошел через Wolf Paulus несколько месяцев назад, совершенно не знающий python. Удалено python 2.7 и "замените" его на 3.something. Моя FTP-программа перестала работать (Fetch), и кто знает, что еще полагается на Python 2.7. Поэтому в этот момент я загрузил последнюю версию 2.7 с python.org, и он установил меня и запускал - пока я не попытался использовать virtualenv.

То, что, похоже, сработало для меня на этот раз, полностью удалило Python 2.7 с помощью этого кода:

sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7

удаление всех ссылок с помощью этого кода:

sudo rm /usr/bin/pydoc
sudo rm /usr/bin/python
sudo rm /usr/bin/pythonw
sudo rm /usr/bin/python-config

Я пытался установить python с помощью homebrew, но, видимо, он не будет работать, если не будет установлен все XTools, чего я избегаю, поскольку версия XTools, совместимая с 10.6, является древней и 4 ГБ, и в основном все Мне нужен GCC, компилятор, который вы можете получить здесь.

Итак, я только что установил последнюю версию из python.org.

Затем пришлось переустановить easy_install, pip, virtualenv.

Определенно интересно, когда придет время для нового ноутбука, но есть много чего сказать о покупке меньше аппаратных средств (рабский труд, неэтичная добыча и т.д.).

Ответ 10

Я сделал следующие шаги, чтобы заставить virtualenv работать:

Обновить virtualenv следующим образом:

==> sudo pip install --upgrade virtualenv

Инициализировать python3 virtualenv:

==> virtualenv -p python3 venv

Ответ 11

Откройте терминал и введите /Library/Frameworks/Python.framework/Versions/

тогда введите ls /Library/Frameworks/Python.framework/Versions/2.7/bin/ , если вы используете Python2 (или любое другое).

Измените ~/.bash_profile и добавьте следующую строку: export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

cat ~/.bash_profile

В моем случае содержимое ~/.bash_profile выглядит следующим образом:

export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

Теперь команда virtualenv должна работать.

Ответ 12

У меня была эта же проблема, и я могу подтвердить, что проблема связана с устаревшим файлом virtualenv.py.

Не нужно было делать целую install -upgrade.

Замените файл virtualenv.py самой последней версией.

Ответ 13

У меня также была эта проблема, и я попробовал следующий метод, который работал у меня:

conda install virtualenv

virtualenv --system-site-packages /anaconda/envs/tensorflow (здесь envs хранит все виртуальные среды, созданные пользователем)

source /anaconda/envs/tensorflow/bin/activate

Надеюсь, что это будет полезно.

Ответ 14

У меня такая же проблема, и я обнаружил, что это происходит, когда вы не укажете имя исполняемого файла python должным образом. Итак, для python 2x, например:

virtualenv --system-site-packages -p python mysite

Но для python 3.6 вам нужно указать исполняемое имя, например python3.6

virtualenv --system-site-packages -p python3.6 mysite