更新。
不幸的是,更改别名不起作用。我已将别名更改为 alias python='/usr/bin/python2.7',但 shell 脚本仍然运行 2.4.3 中的 python 脚本。
Muru - 我使用 PYTHONPATH 指向 python 路径。但是正如你所说,这可能不正确。是否有可用于指向特定 python 可执行文件的 PYTHONPATH 版本?
根据要求,Shell 脚本如下。
cd ../../../..
export BREVE_CLASS_PATH=/home/user/breve_2.7.2/lib/classes
export PYTHONPATH=/usr/bin/python2.7
cd /home/user/breve_2.7.2
./bin/breve /home/user/breve_2.7.2/demos/Getting-Started/RandomWalker_version.py
我正在运行一个shell脚本,该脚本在某个程序中运行一个python脚本。
我的问题是 Python 脚本是在 Python 2.4 中启动的,而我需要它在 Python 2.7 中运行。在 Shell 脚本中,我添加了以下行以尝试强制使用 Python2.7。
export PYTHONPATH=/usr/bin/python2.7
但是,当 python 脚本打印其使用的版本时,我得到的是 python 2.4.3。我这样做对吗?
我该如何继续?
答案1
由于您安装了多个 python 版本,并且想要确定哪个 python 作为默认版本,因此您应该使用update-alternatives
维护符号链接的命令来确定默认命令。
首先运行这个:
update-alternatives --list python
如果结果是:
update-alternatives: error: no alternatives for python
然后,您应该使用update-alternatives
您--install
拥有的各种 Python 版本的替代方案(如果该--list
选项导致列出替代方案,请直接跳转到--config
后面提到的选项)。该--install
选项的参数是组、目标和优先级,其中优先级数字越大,优先级越高,组意味着小路该命令将给出一组备选方案:
update-alternatives --install /usr/bin/python python /usr/bin/python2.4 1
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
此后,python 2.7 将成为您的默认 python,因为它具有更高的优先级,并且您安装了两个 python 版本作为备选(如果您还安装了其他版本,则安装的版本更多)。请记住,python 2.7 现在是所有程序的默认 python。
现在,您可以使用 --list 参数再次列出某个组的已安装替代方案:
update-alternatives --list python
/usr/bin/python2.4
/usr/bin/python2.7
现在,你可以使用以下命令在替代方案之间切换:
update-alternatives --config python
输入选择编号,您就可以将所需的 Python 版本用作默认 Python。
使用手册页来阅读有关 update-alternatives 的更多信息:
man update-alternatives
答案2
为什么不直接做
python /home/user/breve_2.7.2/demos/Getting-Started/RandomWalker_version.py
在最后一行。这应该可以解决问题(当 shebang 正确时)。