установка 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 61

14 ответов:

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

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 двоичный из пути, как это (может потребоваться 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 перестал работать сегодня после обновления: Пип сломан после обновления

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

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)

фиксации ПГИ

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

~/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. Run 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 had 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 одновременно, и они скоординированы.