У меня на самом деле есть три вопроса:

  1. Поэтому я пытался переключаться между python2.7 и python3.4. Я добавил обе альтернативы, используя альтернативы update-alternatives , указав приоритеты 1 и 2 соответственно. Он был установлен в ручной режим, поэтому я настроил его и попытался запустить python . Я не знаю, что здесь произошло, но это не сработало. Он работал нормально, прежде чем устанавливать альтернативы. Но вместо этого, когда я вошел в python2 он работал нормально и запустил python2.7. Аналогично, вход в python3 запускает python3.4. И это немного смутило меня.

    Разве python не должен быть универсальной командой для запуска v2.7 или v.3.4 в зависимости от конфигурации?

  2. Теперь, очень галантно , я попытался исправить это самостоятельно, не чувствуя необходимости искать, в чем проблема (наивно, я знаю). Я немного поиграл с этим. Один за другим удалял альтернативы, используя remove (должен был использовать вздохи remove-all ), но, что довольно подозрительно, когда я запускал update-alternatives --list python , он все еще показывал альтернативы. Путаница ++ .

    В чем причина этого? Почему те еще показывали?

  3. В любом случае, предполагая, что они были удалены, я снова добавил альтернативы и, в надежде исправить проблему, попытался запустить python . Увы, это не сработало ... отображая следующую строку:

    bash: /usr/lib/command-not-found: /usr/bin/python3: bad interpreter: No such file or directory

    Далее попробовал запустить python2 . Бам! На этот раз этот тоже не сработал! Производя аналогичный вывод:

    bash: /usr/lib/command-not-found: /usr/bin/python3: bad interpreter: No such file or directory

    То же самое для python3 . Выход:

    bash: /usr/lib/command-not-found: /usr/bin/python3: bad interpreter: No such file or directory

    Итак, что мне здесь не хватает и в чем проблема? Пожалуйста, дополните.

PS: простите мое невежество. Вопросы могут быть глупыми, но только недавно я начал изучать все это. Я в значительной степени нуб.

PPS: я использую Xubuntu 15.04.

ТИА.

1 ответ1

0

Isn't python supposed to be a generic command to run either v2.7 or v.3.4 based on the configuration?

Нет, нет, нет, ноооооооооооооооо

Вот что в основном имеет место. Python 2 и 3 - это разные и очень разные среды выполнения и языки, и система всегда будет предполагать, что python - это python2, а python3 - это python3. Это связано с тем, что многие критически важные для системы приложения используют python и достаточно взрослые, чтобы называть "python" вместо "python3".

При написании своих собственных приложений вызывайте соответствующего переводчика, а не предполагайте.

Я не уверен, что вы сломали, но похоже, что Python 2/3 хранится в другом месте, и ваши действия сломали символическую ссылку (что делают альтернативы).

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

Если вам нужно использовать другие версии python, рассмотрите virtualenv

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .