我运行以下命令来安装 Jython:
sudo apt-get install jython
安装的是2.7.1版本:
$ which jython
/usr/bin/jython
$ jython --version
Jython 2.7.1
然而,后来我遇到了这个错误(还已报告此错误) 并想手动安装 Jython,以尝试不同的版本。
目前最新来自Jython 网站是 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是版本 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
猛击缓存路径到可执行文件。which
不知道这个缓存;它遵循您作为最终用户所期望的逻辑。我认为在启动新 shell 时问题已经解决。
Jython 2.7.0 和 2.7.1 是不同的版本。安装 2.7.0 后,你将其符号链接到可能来自后 /usr/bin/
在您的PATH
*中,使其继续优先选择系统版本。
*PATH
是一个环境变量,它告诉 shell 在键入命令时要查找的位置以及查找顺序。您可以像查看任何环境变量一样,使用 来查看它echo $PATH
。