установка pip / 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's -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's -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

14 ответов


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

brew link --overwrite python

как говорится в как символически связать python в Homebrew? и это решило проблему.


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

почему вы используете sudo? В идеале вы должны иметь возможность устанавливать и запускать все из своей учетной записи пользователя вместо использования root. Если вы смешиваете 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 binary из пути, как это (может потребоваться sudo):

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

тогда попробуйте запустить свой снова. Надеюсь, он подбирает правильную версию и успешно работает.


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

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

это вернуло все в норму.


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

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

только решение в OSX и его вариант.

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

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

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

hash -r

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

brew install python@2

затем на моем 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)

исправление pip

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

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

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

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, см. выше.


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

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


У меня была та же проблема, 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.

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

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


у меня такая же проблема. Если я побегу 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 версии ткани.

=== 2018/07/25 обновляется!--6-->

существует удобный способ использовать python2 версии fab, когда ваша ОС 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

надеюсь, что это помогает.


sudo /usr/bin/easy_install pip

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


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