Ввод команд в терминал всегда возвращает & ldquo; -bash: / usr / bin / python: is каталог & rdquo;

Мне кажется, что я что-то напутал на своем сервере Ubuntu, пытаясь перейти на Python 2.7.2. Каждый раз, когда я набираю команду, у которой нет ответа, по умолчанию bash выглядит так:

-bash: /usr/bin/python: is a directory

Так же, как если бы я набрал имя каталога , Но это происходит каждый раз, когда я ввожу команду, которая ничего не делает.

artur@SERVER:~$ dslkfjdsklfdshjk
-bash: /usr/bin/python: is a directory

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

С этой проблемой связан также тот факт, что когда я пытаюсь использовать easy_install, он сообщает мне

-bash: /usr/bin/easy_install: /usr/bin/python: bad interpeter: Permission denied

/etc/fstab/ установлен в exec. Я читал, что это может решить вторую проблему, но это не так.

3
задан 13 November 2011 в 05:38

1 ответ

Когда вы запускаете команду foo (где foo заменяется любой командой, которую вы запускаете), оболочка ищет во всех каталогах переменной среды PATH файл с именем foo с разрешениями на выполнение. .

Если он не находит его, то в системе Ubuntu с конфигурацией по умолчанию он запускает команду /usr/lib/command-not-found foo. Это делается в файле /etc/bash.bashrc.

Вот что выдает результат:

$ foo
No command 'foo' found, did you mean:
 Command 'fio' from package 'fio' (universe)
 Command 'goo' from package 'goo' (universe)
 Command 'fop' from package 'fop' (main)
 Command 'fox' from package 'objcryst-fox' (universe)
 Command 'xoo' from package 'xoo' (universe)
 Command 'zoo' from package 'zoo' (universe)
foo: command not found

И:

$ gnuchess
The program 'gnuchess' is currently not installed.  You can install it by typing:
sudo apt-get install gnuchess

Сама программа command-not-found (т. Е. /usr/lib/command-not-found) представляет собой скрипт Python:

$ file /usr/lib/command-not-found
/usr/lib/command-not-found: a /usr/bin/python script text executable

Так что, если ваша установка Python не работает, ожидается, что command-not-found всегда будет терпеть неудачу и выдаст ошибку о Python. Вы можете решить проблему, исправив установку Python.

Ubuntu поставляется с установленным Python и требует Python для множества программ (например, диспетчера обновлений и центра программного обеспечения). Различные официальные версии Python одновременно доступны через официальные источники программного обеспечения, и различные версии могут быть установлены одновременно без конфликтов. Однако также возможно установить Python вручную, собрав его из исходного кода. Если вы сделаете это, то вы должны убедиться, что ваш вручную скомпилированный и установленный Python не конфликтует с другими установленными реализациями Python.

Итак, первое, что вы должны сделать, это удалить любой установленный вручную Python. При его установке существует каталог, в который вы бы запустили команду sudo make install. Вам нужно перейти в этот каталог и запустить sudo make uninstall.

После того как вы удалили все установки Python вручную (если они есть), затем полностью переустановите Python:

sudo apt-get update
sudo apt-get --purge --reinstall install python

Это, вероятно, сработает. Если это не так, пожалуйста, предоставьте вывод:

which -a python
file /usr/bin/python /usr/bin/python2.7
0
ответ дан 13 November 2011 в 05:38

Другие вопросы по тегам:

Похожие вопросы: