it-swarm.com.ru

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

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

  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
68
Mona Jalal

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

brew link --overwrite python

как упоминалось в Как символическую ссылку на Python в Homebrew? и это решило проблему.

141
LancDec

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

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

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

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

Это покажет вам, какой двоичный файл Python 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. Надеемся, что он подберет правильную версию и успешно работает.

39
Steven Kryskalla

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

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

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

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

Это вернуло все на круги своя.

25
DaveSaunders

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

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

~/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, см. Выше.

17
kotoole

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

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

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

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

hash -r
8
Jordan

Чтобы упростить работу, мы можем использовать следующую команду для переустановки версии 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)
8
feuyeux

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

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

4
yabrol

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

Поскольку у меня были установлены оба 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
2
Simon Briggs

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

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

1
Peter. Chen

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

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
1
José Junior

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

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

1
Simon
Sudo /usr/bin/easy_install pip

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

0
user9022502