我刚刚在我们的服务器上安装了 Python 2.7,他们事先安装了 2.4。
在我构建了新版本之后,我的路径仍然指向旧版本的python,你知道一个简单的方法来改变它吗?
我没有 sudo 权限,也没有 root 访问权限。
我刚刚在我们的服务器上安装了 Python 2.7,他们事先安装了 2.4。
在我构建了新版本之后,我的路径仍然指向旧版本的python,你知道一个简单的方法来改变它吗?
我没有 sudo 权限,也没有 root 访问权限。
因为您在服务器上并且没有root权限,所以您最好的选择是使用virtualenv
构建 Python 2.7,例如,如下:
$ ./configure --prefix=~/mydir
$ make
$ make install
下载virtualen.py
文件并运行:
$ ~/mydir/bin/python virtualenv.py my_environment
这将为您在my_environment
目录中创建一个隔离的 Python 2.7 环境。
激活它运行source my_environment/bin/activate
,就是这样。现在python
可执行文件将是您的 Python 2.7。此外,您将pip
安装并因此可以轻松地将任何其他库安装到您的环境中。
首先,您应该检查您~/.profile
和您的 shell 配置文件(例如~/.bashrc
bash)中是否存在包含违规路径的任何export $PATH=
(或PYTHONPATH
,取决于您所指的具体内容)指令。如果有,请更改它们并重新登录。那应该可以解决您的问题。
如果没有,请与您的管理员联系。如果这也没有帮助,您可以执行以下操作。在您的 shell 中,运行(可以用 代替PATH
,PYTHONPATH
具体取决于您的实际需要):
echo $PATH
复制输出并根据您的需要进行修改。然后打开另一个 shell并运行(记住替换):
export PATH="whatever you copied before"
检查一切是否正常(即您仍然可以调用您需要的所有应用程序并且您的路径已相应调整)。如果是这种情况,请将命令添加到您的~/.profile
.
这个答案假设您的环境是 Linux、Unix 或类似的东西。
如果您的问题是PATH
环境变量未指向正确的二进制文件,请修改它PATH
:使其包含给定目录,例如~/bin
,通过PATH=${HOME}/bin:${PATH}
从您的配置文件之一执行,例如~/.profile
. 确保创建该目录,并让它包含一个名为python
指向正确版本 Python 的符号链接。
这对于具有硬编码路径的脚本没有帮助,例如以#!/usr/bin/python
. 当您直接从命令行调用它们时,您可以简单地调用解释器(即python
),将脚本的名称作为参数传递:python /path/to/script.py
。你甚至可以使用你想要的 python 版本来代替它,即python2.7 /path/to/script.py
.
您也可以将整个序列转换为~/bin
目录中的脚本,例如~/bin/foo
包含以下内容:
#!/bin/sh
exec ${HOME}/bin/python2.7 /usr/bin/foo
不要忘记chmod -x ~/bin/foo
文件。你会得到一个可执行的 shell 脚本,它在你PATH
的系统上安装的默认版本之前。然后,该脚本将使用非常特定的解释器调用该默认版本。所以现在你可以简单地输入短名称,并让你想要的 python 版本执行官方脚本。
其他一些脚本可能会尝试使用其绝对路径名执行给定的 python 脚本。在这种情况下,没有任何修改PATH
会有所帮助。您必须修改相关脚本的第一行以读取例如#!/usr/bin/env python
. 如果您无法控制这些脚本,那么您就有麻烦了,并且需要更高级的 hack 来调整系统以执行通常不会执行的操作。LD_PRELOAD
想到了。