Я установил следующее для установки Jython:

sudo apt-get install jython

Установлена версия 2.7.1:

$ which jython
/usr/bin/jython
$ jython --version
Jython 2.7.1

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

Текущая последняя версия Jython.org - 2.7.0, хотя я бы тоже попробовал 2.5.3, если это не удалось.

Я побежал

sudo java -jar jython-installer-2.7.0.jar

И установлен в /usr/local/lib/jython2.7.0/ и символическую ссылку

sudo ln -s /usr/local/lib/jython2.7.0/bin/jython /usr/local/bin/jython

Итак, теперь у меня есть:

$ which jython
/usr/local/bin/jython
$ jython --version
Jython 2.7.1

И тот же баг. Хорошо, давайте удалим установленный Ubuntu Jython. Может быть, есть перепутывание библиотек (или, возможно, версия 2.7.0 IS версии 2.7.1?)

$ sudo apt-get remove jython
$ which jython
/usr/local/bin/jython
$ jython --version
bash: /usr/bin/jython: No such file or directory
$ ll /usr/local/bin/jython
lrwxrwxrwx 1 root root 37 Jul 29 07:44 /usr/local/bin/jython -> /usr/local/lib/jython2.7.0/bin/jython*

И теперь я в замешательстве.

Почему which jython указывает на /usr/local/bin/ но когда я пытаюсь запустить jython, он выглядит в /usr/bin/ ?

1 ответ1

2

Bash кэширует пути к исполняемым файлам . which не знает об этом кеше; это соответствует логике, которую вы, как конечный пользователь, ожидаете. Я бы предположил, что проблема решена при запуске новой оболочки.

Jython 2.7.0 и 2.7.1 являются разными версиями. После того, как вы установили 2.7.0, вы поместили его в ссылку, которая, вероятно, находится после /usr/bin/ в вашем PATH *, в результате чего он по-прежнему предпочитает системную версию.

* PATH - это переменная окружения, которая сообщает оболочке, где и в каком порядке искать команду при вводе команды. Вы можете просмотреть его, как и любые переменные окружения, с помощью echo $PATH .

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