Что означает эта ошибка колбы? /usr/local/bin/flask: плохой интерпретатор: /usr/local/opt/python/bin/python2.7: такого файла или каталога нет
Я могу сказать, что Flask пытается использовать python2.7 в качестве интерпретатора, но я не понимаю, почему. Я создал Виртуален с python3 -m venv venv
, установил флягу и попытался запустить приложение. Я вижу python3.6 в моем venv, как и ожидалось, поэтому я просто не понимаю, откуда берется любая попытка использовать python2.7. Я предполагаю, что это как-то связано с моим путем, но я нахожу, что всякий раз, когда мне нужно переключиться между 2 и 3, мне нужно изменить свой путь, неизбежно нарушая другую версию.
Исходя из других языков, обещание "изолированных" венв никогда не работает должным образом, так как я часто нахожу, что Python 2 и 3 неразрывно перепутаны. Нет ли способа получить абсолютную среду Python 2 или 3?
1 ответ
В прошлом вы однажды установили Flask с Python 2.7, но этот скрипт указывает на версию Python, которая больше не устанавливается.
Учитывая, что пути являются /usr/local/bin
а также /usr/local/opt/python/bin/python2.7
Я предполагаю, что вы используете OS X здесь и у вас установлен Homebrew. Доморощенный выключил python
формула от Python 2 до Python 3 в недавнем прошлом, и вы, вероятно, установили Flask для с Python 2 pip
Команда до этого изменения. Вы должны иметь возможность просто удалить /usr/local/bin/flask
Сценарий в целом, теперь он устарел и сломан.
Вы также не активировали свой virtualenv. Вы не должны, но пока вы не сделаете, bin/
каталог с правильной версией flask
Скрипт также не будет доступен. Когда virtualenv активирован, ваш PATH
переменная окружения обновляется, чтобы включить bin/
каталог, включив его в начале PATH
значение.
Либо уточняйте flask
скрипт, который будет использоваться с использованием пути к virtualenv bin/
каталог, или активируйте virtualenv правильно.
Вы можете проверить, активен ли ваш virtualenv с
echo $VIRTUAL_ENV
и это должно напечатать путь к твоему virtualenv. Вы также можете проверить, что PATH
установлен правильно; echo $PATH
должен показать виртуальность .../bin/
каталог в качестве первой записи. Если он не активен, активируйте его, запустив
source bin/activate
в корневом каталоге virtualenv.
Вы можете запустить правильный flask
команда с помощью
path/to/venv/bin/flask