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

Pip installation/usr/local/opt/python/bin/python2.7: плохой интерпретатор: нет такого файла или каталога

Я не знаю, что это за сделка, но я застрял после некоторых решений stackoverflow, которые никуда не исчезают. Можете ли вы мне помочь в этом?

  Monas-MacBook-Pro:CS764 mona$ sudo python get-pip.py
    The directory '/Users/mona/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo -H flag.
    The directory '/Users/mona/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo -H flag.
    /tmp/tmpbSjX8k/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
    Collecting pip
      Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB)
        100% |████████████████████████████████| 1.1MB 181kB/s 
    Installing collected packages: pip
      Found existing installation: pip 1.4.1
        Uninstalling pip-1.4.1:
          Successfully uninstalled pip-1.4.1
    Successfully installed pip-7.1.0
    Monas-MacBook-Pro:CS764 mona$ pip --version
    -bash: /usr/local/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory
4b9b3361

Ответ 1

Я использовал home- brew для установки 2.7 на OS X 10.10, и новой установке не хватало сим-ссылок. Я побежал

brew link --overwrite python

как упоминалось в Как символизировать питон в Homebrew?, и он решил проблему.

Ответ 2

Я предполагаю, что у вас есть две установки python или две установочные установки, одна из которых частично удалена.

Почему вы используете sudo? В идеале вы должны иметь возможность устанавливать и запускать все из своей учетной записи пользователя вместо использования root. Если вы смешиваете корень и локальную учетную запись вместе, вы, скорее всего, столкнетесь с проблемами разрешений (например, см. Предупреждение, которое оно дает о "родительском каталоге не принадлежит текущему пользователю" ).

Что вы получите, если вы запустите это?

$ head -n1 /usr/local/bin/pip

Это покажет вам, какой python binary pip пытается использовать. Если он указывает /usr/local/opt/python/bin/python2.7, попробуйте запустить это:

$ ls -al /usr/local/opt/python/bin/python2.7

Если это говорит "Нет такого файла или каталога", то pip пытается использовать бинарный файл python, который был удален.

Затем попробуйте следующее:

$ which python
$ which python2.7

Чтобы увидеть путь к исполняемому файлу python, который действительно работает.

Так как похоже, что pip был успешно установлен где-то, возможно, что /usr/local/bin/pip является частью более старой установки pip, которая выше на PATH. Чтобы проверить это, вы можете попытаться переместить неработающий двоичный код pip таким образом (может потребоваться sudo):

$ mv /usr/local/bin/pip /usr/local/bin/pip.old

Затем попробуйте снова запустить команду pip --version. Надеюсь, он подберет правильную версию и успешно работает.

Ответ 3

Единственное решение в OSX и его вариант.

ln -s /usr/local/bin/python /usr/local/opt/python/bin/python2.7

Ответ 4

Фиксирующий пункт

Для этой ошибки:

~/Library/Python/2.7/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory'

Источником этой проблемы является неверный путь к питону, жестко запрограммированный в pip (что означает, что он не будет исправлен, например, путем изменения $ PATH). Этот путь больше не жестко прописан в последней версии pip, поэтому должно работать следующее решение:

pip install --upgrade pip

Но, конечно, эта команда использует pip, поэтому она завершается с той же ошибкой.

Способ загрузить себя из этого беспорядка:

  1. Запустите which pip
  2. Откройте этот файл в текстовом редакторе
  3. Измените первую строку с #!/usr/local/opt/python/bin/python2.7 на, например. #!/usr/local/opt/python2/bin/python2.7 (обратите внимание на путь python2) или любой путь к работающему интерпретатору python на вашей машине.
  4. Теперь pip install --upgrade pip (это перезаписывает ваш хак и заставляет pip работать в последней версии, где проблема с интерпретатором должна быть исправлена)

Исправление virtualenv

Для меня я нашел эту проблему, сначала имея идентичную проблему от virtualenv:

~/Library/Python/2.7/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory'

Решением здесь является запуск

pip uninstall virtualenv
pip install virtualenv

Если при выполнении этой команды выдает ту же ошибку из pip, см. выше.

Ответ 5

Я сделал ту же ошибку, используя sudo для моей установки. (Ой)

brew install python
brew linkapps python
brew link --overwrite python 

Это вернуло все к нормальной жизни.

Ответ 6

У меня была аналогичная проблема. В основном пип искал неправильный путь (старый путь установки) или питон. Для меня работало следующее решение:

  • Я проверил, где находится путь python (try which python)
  • Я проверил первую строку в файле pip (/usr/local/bin/pip2.7 и /usr/local/bin/pip). Строка должна указывать правильный путь к пути python. В моем случае, нет. Я исправил его, и теперь он отлично работает.

Ответ 7

Поскольку у меня были установлены оба Python 2 и 3 на Mac OSX, у меня были всевозможные ошибки.

Я использовал, чтобы найти местоположение моего файла python2.7 (/usr/local/bin/python2.7)

which python2.7

Затем я установил ссылку на мое настоящее место установки python2.7 с тем местом, которое ожидал скрипт:

ln -s /usr/local/bin/python2.7 /usr/local/opt/python/bin/python2.7

Ответ 8

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

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

hash -r

Ответ 9

Чтобы упростить работу, мы можем использовать приведенную ниже команду для переустановки версии 2:

brew install [email protected]

Тогда на моем Mac это выглядит так:

▶ python -V
Python 2.7.10

▶ python2 -V
Python 2.7.14

▶ python3 -V
Python 3.6.5

▶ pip2 -V
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)

▶ pip3 -V
pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)

▶ pip --version
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)

Ответ 10

Я была такая же проблема. У меня есть и Python 2.7 & 3.6 установлен. В Python 2.7 работал virtualenv, но после установки Python3 virtualenv продолжал искать версию 2.7 и не мог ее найти. Выполнение pip install virtualenv установило Python3 версию virtualenv.

Затем для каждой команды, если я хочу использовать Python2, я бы использовал virtualenv --python=python2.7 somecommand

Ответ 11

У меня была та же проблема, virtualenv указывал на старый путь к Python. Исправление пути решило проблему:

$ virtualenv -p python2.7 env
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

$ which python2.7
/opt/local/bin/python2.7

# needed to change to correct python path
$ head  /usr/local/bin/virtualenv
#!/usr/local/opt/python/bin/python2.7 <<<< REMOVED THIS LINE
#!/opt/local/bin/python2.7 <<<<< REPLACED WITH CORRECT PATH

# now it works:
$ virtualenv -p python2.7 env
Running virtualenv with interpreter /opt/local/bin/python2.7
New python executable in env/bin/python
Installing setuptools, pip...done.

Ответ 12

В моем случае я решил удалить домашнюю установку python с моего mac, поскольку у меня уже было две другие версии python, установленные на моем Mac через MacPorts. Это вызвало сообщение об ошибке.

Переустановка python через brew решила мою проблему.

Ответ 13

У меня та же проблема. Если я бегу brew link --overwrite python2. Был еще zsh: /usr/local/bin//fab: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directory.

cd /usr/local/opt/
mv python2 python

Решил это! Теперь мы можем использовать версию Python2 Fabric.

=== 2018/07/25 обновлено

Существует удобный способ использовать версию python2 fab, когда ваш os python связан с python3. .sh для вашей команды.

# fab python2
cd /usr/local/opt
rm python
ln -s python2 python

# use the fab cli
...

# link to python3
cd /usr/local/opt
rm python
ln -s python3 python

Надеюсь, это поможет.

Ответ 14

Редактирование первой строки этого файла мне помогло:

MBP-de-Jose:~ josejunior$ which python3

/usr/local/Cellar/python/3.7.3/bin/python3

MBP-de-Jose:~ josejunior$

Перед

#!/usr/local/opt/python/bin/python3.7

после

#!/usr/local/Cellar/python/3.7.3/bin/python3

Ответ 15

Все, что вам нужно сделать, это... закрыть окно терминала и открыть новое, чтобы решить эту проблему.

Проблема в том, что новый путь python не добавляется в bashrc (может помочь либо окно с исходным кодом, либо окно нового терминала).

Ответ 16

Да. похоже, это довольно частая проблема. Одним из решений является установка Anaconda3, загрузка Anaconda3-4.2.0-Linux-x86_64.sh, и Anaconda3 предоставит вам python и pip одновременно и они будут скоординированы.

Ответ 17

sudo /usr/bin/easy_install pip

эта команда сработала для меня