我刚刚在我们的服务器上安装了Python 2.7,他们已经预先安装了2.4。
在我构建新版本之后,我的路径仍然指向旧版本的python,你知道一个简单的方法来改变它。
我没有sudo权限也没有root权限。
答案 0 :(得分:3)
因为您在服务器上并且没有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
,因此可以轻松地将任何其他库安装到您的环境中。
答案 1 :(得分:0)
首先,对于任何~/.profile
(或~/.bashrc
,您应检查export $PATH=
和您的shell配置文件(例如PYTHONPATH
是否为bash),具体取决于您的身份完全引用包含违规路径的指令。如果有的话,改变它们并重新登录。这应该可以解决你的问题。
如果没有,请与您的管理员联系。如果这也没有帮助,您可以执行以下操作。在你的shell中,运行(可以用PATH
代替PYTHONPATH
,具体取决于你真正需要的东西:
echo $PATH
复制输出并根据需要进行修改。然后打开另一个shell 并运行(记住替换):
export PATH="whatever you copied before"
检查一切正常(即您仍然可以调用所需的所有应用程序,并相应地调整您的路径)。如果是这种情况,请将命令添加到~/.profile
。
答案 2 :(得分:0)
这个答案假设您的环境是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
。如果您无法控制这些脚本,那么您就会遇到麻烦,需要更高级的黑客来调整系统,使其做一些通常无法做到的事情。想到LD_PRELOAD
。