usr bin python3 m неверный интерпретатор нет такого файла или каталога

Python-сообщество

Уведомления

#1 Июнь 20, 2010 11:30:29

Проблема с /usr/bin/python^M

#2 Июнь 20, 2010 12:23:02

Проблема с /usr/bin/python^M

Разные окончания строк в Windows и *nix системах.
Настрой в обоих редакторах одинаковый перенос строк.

#3 Июнь 20, 2010 12:51:11

Проблема с /usr/bin/python^M

Можете попользовать dos2unix на Убунте, чтобы сконвертить концы строк в нужный формат.

#4 Июль 24, 2010 20:47:00

Проблема с /usr/bin/python^M

Доброго времени суток!

Стоит Python 3.1 и Ubuntu 10.04, неадекватно работает shebang =(

Прописываю #!/usr/bin/python3 в начале скрипта, пытаюсь исполнить, на что получаю ответ:

Пробовал так же следующий ше-банг: #!/usr/bin/env python3
Результат: “: Нет такого файла или каталога”

Стоит так же родная версия 2.6, но при замене “python3” на “python” все равно не пашет =((

Файл само собой исполняемый, если напрямую запускать “python3 ”, то все пашет… А интересует именно использование ше-банга

Помогите, пожалуйста, всю голову уже сломал…

#5 Июль 24, 2010 21:20:13

Проблема с /usr/bin/python^M

Значит в вашем редакторе установлено Win-окончание строки. Переключите его на Unix-окончание и всё заработает.

#6 Июль 24, 2010 21:34:07

Проблема с /usr/bin/python^M

Все, дошло =) Спасибо! Что в gedit, что в редакторе IDLE включены Win-окончания о__О Исправить удалось только в vi в консоле… Ну что ж, буду копаться в настройках )

Источник

bash: / usr / lib / command-not-found: / usr / bin / python3: плохой интерпретатор: нет такого файла или каталога [duplicate]

Команда программы python выполняет Python 2. Python 3 можно выполнить с помощью команды python3. Как выполнить Python 3 с помощью команды python?

14 ответов

Простым безопасным способом было бы использовать псевдоним. Поместите это в файл

После добавления вышеприведенного в файл выполните следующую команду:

/.bash_aliases or source

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

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

Простым безопасным способом было бы использовать псевдоним. Поместите это в файл

После добавления вышеприведенного в файл выполните следующую команду:

/.bash_aliases or source

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

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

Вы можете привязать /usr/bin/python к python3 с помощью

См. другие ответы, почему вы не хотите этого делать. Ubuntu 18.04 больше не поставляется с Python 2, поэтому не должно быть слишком плохо.

, затем напишите либо

Сохраните файл, закройте терминал и снова откройте его. Ссылка

Вы можете использовать update-alternatives для предоставления различных версий программ, которые могут понадобиться в разное время из-за проблем с совместимостью.

Этот ответ Является хорошим примером того, как устанавливать вещи для одновременного поддержания разных например, версии gcc / g ++.

просто делают то же самое с python2.7 и python 3.3

(если у вас есть разрешение на запись в / usr / local / bin) аналогично

, тогда вы только набираете py (и используете py в #! lines) для выбранного вами python.

Ubuntu и остальные дистрибутивы Linux по-прежнему в значительной степени зависят от Python 2.7 для ряда приложений и команд. Если вы измените ссылку по умолчанию на «python» на Python 3.x, тогда некоторые функции Python начнут бросать ошибки утверждения.

Например, на Ubuntu «pip» для одного больше не будет запускаться правильно, если вы непосредственно не отредактировали файл и не изменили shebang на ссылку ‘#! / usr / bin / env python2.7’. На RHEL (Red Hat Enterprise Linux), таких как Red Hat, Fedora и CentOS, команда «Yum» также зависит от Python 2.7.

Моя точка зрения заключается в том, что вы вызываете значительный объем кода чтобы начать бросать ошибки утверждения только для того, чтобы вы могли набирать «python» в терминале, чтобы ссылаться на Python 3.x.

Вам намного лучше использовать команду «python3» в терминале и shebang ‘ #! / usr / bin / env python3 ‘в ваших файлах Python 3.x.

Обновление: это не так, как я узнал, поскольку Python2 и Python3 не являются взаимозаменяемыми.

Вы можете попробовать инструмент командной строки update-alternatives.

] Если вы получите ошибку «нет альтернатив для python», тогда настройте альтернативу со следующей командой:

Соответственно измените путь /usr/bin/python3 на нужную версию python.

Вы можете привязать /usr/bin/python к python3 с помощью

См. другие ответы, почему вы не хотите этого делать. Ubuntu 18.04 больше не поставляется с Python 2, поэтому не должно быть слишком плохо.

Источник

Переход на Python 3 в Debian и Kali Linux

Python 2 в Debian и производных дистрибутивах

Kali Linux полностью перешла на Python 3. Это означает, что любой инструмент, присутствующий в репозиториях Kali, который использовал Python 2, был либо удалён, либо конвертирован для использования в Python 3. Во всех этих инструментах в качестве шебанга указан /usr/bin/python3.

Что касается пакетов, которые поступают прямо из Debian, они сделали то же самое для большинства пакетов, но есть несколько исключений, когда пакетам разрешено продолжать полагаться на Python 2. Однако эти пакеты были обновлены, поэтому все эти скрипты используют /usr/bin/python2 в качестве их шебанга, то есть в них использование python2 указано явно (вместо прежнего python).

Благодаря этим изменениям Debian больше не нужно предоставлять /usr/bin/python, а недавние обновления эффективно избавятся от этой символической ссылки.

К сожалению, когда вы загружаете скрипт Python в Интернет, он, скорее всего, будет иметь /usr/bin/python в качестве его шебанга. Если вы попытаетесь выполнить его, не исправляя строку shebang, вы получите ошибку, подобную этой:

То есть плохой интерпретатор /usr/bin/python, нет такого файла или каталога.

В Debian вы можете восстановить символическую ссылку /usr/bin/python, установив один из пакетов:

Сохранение обратной совместимости в Kali с Python 2

Учитывая большое количество пользователей, которые не знали, как избежать вышеуказанной ошибки, было решено, что Kali будет продолжать поставлять Python 2 по умолчанию (пока Debian всё ещё предоставляет его) и что /usr/bin/python будет указывать на него. Также сохранено несколько общих внешних модулей (например, requests), чтобы скрипты эксплойтов имели разумные шансы на успешное выполнение.

Однако pip для Python2 (он же python-pip) больше не используется, /usr/bin/pip совпадает с /usr/bin/pip3, и он установит модули для Python 3. Для получения дополнительной информации смотрите вопросы и ответы ниже.

Эта совместимость была реализована за счёт того, что kali-linux-headless рекомендовал python2, python-is-python2 и offsec-awae-python2, так что они устанавливаются по умолчанию и могут быть удалены пользователями, которые хотели бы избавиться от них.

Чтобы пользователи знали об этой ситуации, при входе в систему выводится сообщение:

usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть фото usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть картинку usr bin python3 m неверный интерпретатор нет такого файла или каталога. Картинка про usr bin python3 m неверный интерпретатор нет такого файла или каталога. Фото usr bin python3 m неверный интерпретатор нет такого файла или каталога

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

Часто задаваемые вопросы по переходу на Python 3

В: Я загрузил скрипт Python, что мне делать?

О: Вам нужно осмотреть его шебанг. Строка shebang — это первая строка скрипта, которая начинается с символов #! за которыми следует путь к интерпретатору, который будет использоваться для выполнения скрипта.

Если интерпретатором является /usr/bin/python, вам следует прочитать документацию, чтобы узнать, может ли скрипт работать с Python 3. Если да, то вам следует обновить строку shebang, чтобы она указывала на /usr/bin/python3. В противном случае вам следует обновить его, чтобы она указывал на /usr/bin/python2.

Хорошие строки shebang, которые можно оставить как есть:

Плохие строки shebang, которые необходимо обновить:

В: Как я могу избавиться от сообщения о Python 2 которое показывается при входе в систему?

О: Сообщение будет отображаться только до тех пор, пока /usr/bin/python указывает на устаревший Python 2. Теперь, когда вы знаете об этой ситуации и знаете, как исправить строку shebang в старых скриптах, вы можете безопасно избавиться от /usr/bin/python:

Или вы можете указать на Python 3:

Любое из этих действий избавит от приведённого выше сообщения.

В качестве альтернативы, если вы хотите, чтобы /usr/bin/python указывал на python2, и вы всё равно хотите отключить это сообщение, вы можете сделать это:

В: У меня есть скрипт Python 2, который не запускается, что мне делать?

О: Если ваш скрипт Python 2 использует модули, которых нет среди тех, которые поставляются в пакете совместимости offsec-awae-python2 (смотрите список здесь), то вы можете попробовать pyenv для установки полностью изолированной среды Python 2, где вы можете использовать pip для установки дополнительных модулей. Смотрите следующий раздел «Использование версий EoL Python в Kali».

В: Я хочу pip для Python 2, как я могу его вернуть?

В: Я написал скрипт на Python, что мне делать?

О: Будьте вежливы с конечными пользователями:

Источник

/usr/bin/python: bad interpreter: No such file or directory #133

Comments

kowalcj0 commented Aug 3, 2016

there’s a bug in the latest 2.7 version of the container

The text was updated successfully, but these errors were encountered:

kowalcj0 commented Aug 3, 2016

I think this issue is related with #131

Dirbaio commented Aug 3, 2016

This is also affecting us, supervisor from the debian packages stopped working.

pitervergara commented Aug 3, 2016

This is also a problem for the lsb-release package:

I’m facing this when running node installer scripts from nodesource/distributions repo which use lsb_release to identify the O.S. version.

jalessio commented Aug 3, 2016

I’m seeing the exact same issue as @pitervergara. I believe this was introduced in a819c92 when this was replaced:

I don’t have any background on the reasoning behind that change so I don’t feel confident suggesting what the «correct» behavior is.

pitervergara commented Aug 3, 2016

I agree that the issue arrived with that change, because now the files are named «*.distrib», which seems to be the intention of that commit, but the lsb_release and perhaps some other utilities are expecting to find a python executable at /usr/bin/python.

JayH5 commented Aug 4, 2016

One solution is probably just to symlink the Python that is built in this image from source to the location that things expect the Debian version to be:

Things like the Debian-packaged supervisor were working before because apt would just reinstall Python after it was purged as a dependency of the supervisor package. This effectively resulted in 2 Pythons being installed (3 Pythons if you include the Python in the lower layers that is purged).

pitervergara commented Aug 4, 2016 •

@JayH5, at least for the lsb_release package, synlinking the python interpreter won’t work because of the PYTHONPATH.
The python version at /usr/bin/python is the 3.5 compiled into the image, and the debian original /usr/bin/python is a 2.7, whith different lib folder.
To use symlink, we have to point it to the «diverted» one.

Also, note that it must be the «/usr/bin/python2.7.distrib» because «/usr/bin/python.distrib» and «/usr/bin/python2.distrib» both are symlinks to a missing file (the original interpreter name, before dpkg-divert)

glynjackson commented Aug 5, 2016 •

Источник

youtube-dl /usr/bin/env: ‘python’: No such file or directory

In Ubuntu 20.04, we get the following error:

7 Answers 7

In Ubuntu 20.04, python3 is the installed default. The python variable is not set:

We can get around this by using python3 and which :

I think python is missing on your system so,

And if python is missing then install it with this command :

If that does not help, then try this command:

usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть фото usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть картинку usr bin python3 m неверный интерпретатор нет такого файла или каталога. Картинка про usr bin python3 m неверный интерпретатор нет такого файла или каталога. Фото usr bin python3 m неверный интерпретатор нет такого файла или каталога

The easiest way to deal with this in Ubuntu 20.04+ is to symlink python to python3:

Note, however, that if you install other Python programs that rely on the older version of Python, they may not run or work correctly until you remove the symlink and install the older version of Python, or fix the programs to use Python 3. But the older Python version is no longer supported, so it would be better to use only Python programs that can run under Python 3 in the first place.

I had the exact same problem trying to install youtube-dl in ubuntu 20.04 and spent a long time trying to resolve. On the verge of giving up, I saw this from Canonical and thought it looks too simple but tried it anyway! Problem solved!

sudo snap install youtube-dl

usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть фото usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть картинку usr bin python3 m неверный интерпретатор нет такого файла или каталога. Картинка про usr bin python3 m неверный интерпретатор нет такого файла или каталога. Фото usr bin python3 m неверный интерпретатор нет такого файла или каталога

This works for ubuntu 20.04 LTS:

and then replace the first line (the shebang line i.e. #. ) with

usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть фото usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть картинку usr bin python3 m неверный интерпретатор нет такого файла или каталога. Картинка про usr bin python3 m неверный интерпретатор нет такого файла или каталога. Фото usr bin python3 m неверный интерпретатор нет такого файла или каталога

The python variable is not set and update-alternatives will not work either. Let’s fix that.

Install alternatives for python 2 and 3

Change which version to use (v3 default since higher priority)

usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть фото usr bin python3 m неверный интерпретатор нет такого файла или каталога. Смотреть картинку usr bin python3 m неверный интерпретатор нет такого файла или каталога. Картинка про usr bin python3 m неверный интерпретатор нет такого файла или каталога. Фото usr bin python3 m неверный интерпретатор нет такого файла или каталога

If you don’t need python 2 and only need python 3, the easiest is to just

It’s actually just a symlink. The package description explains it:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *