установка 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. Я побежал
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. В моем случае, не. Я его поправил и теперь все работает отлично.
в случае, если это кому-то поможет, решение, упомянутое в этом другом вопросе, работало для меня, когда 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, поэтому она терпит неудачу с той же ошибкой.
путь для того, чтобы запустить себя из этой передряги:
- Run
which pip
- открыть этот файл в текстовом редакторе
- изменить первую строку с
#!/usr/local/opt/python/bin/python2.7
, например,#!/usr/local/opt/python2/bin/python2.7
(обратите внимание на python2 в пути), или любой путь к рабочему интерпретатору python на вашем компьютере.- теперь
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
надеюсь, что это помогает.