为 SLES 11 上的所有用户安装 Python 2.7

Installing Python 2.7 for all users on SLES 11

我在之前 运行ning Python 2.6 的 SLES 11 机器上安装了 Python 2.7。为此,我以 root 用户身份使用脚本 described in this post 和 运行。一切顺利,但完成后我发现了一些问题:

  1. 没有创建符号 link,也没有更新路径,所以我不得不手动将 link 的路径更新到新的安装 bin 目录 /opt/python2.7/bin
  2. 一切都很好 运行s 直到我从 root 切换到普通用户,此时 Python shell 运行s 但我安装的一些模块,如 PyYAML 是丢失的。同样,当我 运行 Python 作为 root
  3. 时,这些都可以
  4. 作为普通用户,我无法 运行 pip、easy_install 和 wheel。对于 pip 我得到 ImportError: No module named pkg_resources

P.S。按照@user的建议,我尝试将以下路径从根用户的sys.path添加到.bashrc,但没有解决问题

export PYTHONPATH=$PYTHONPATH:/opt/python2.7/lib/python27.zip:/opt/python2.7/lib/python2.7:/opt/python2.7/lib/python2.7/plat-linux2:/opt/python2.7/lib/python2.7/lib-tk:/opt/python2.7/lib/python2.7/lib-old:/opt/python2.7/lib/python2.7/lib-dynload:/opt/python2.7/lib/python2.7/site-packages:/opt/python2.7/lib/python2.7/site-packages/PyYAML-3.11-py2.7-linux-x86_64.egg:/opt/python2.7/lib/python2.7/site-packages/pexpect-4.2.0-py2.7.egg:/opt/python2.7/lib/python2.7/site-packages/ptyprocess-0.5.1-py2.7.egg

可信/官方消息来源:official forum. Apart from the SO-link you mentioned, there is also https://unix.stackexchange.com/questions/7644/how-to-do-a-binary-install-of-python-2-7-on-suse-linux-enterprise-server-11, which sketches the way to do it described in Installing Python 2.7 on SLES 11 没有回复(所以不是官方的,是吗?;-)

关于您的问题:2.和3.都可能是sys.path.

中缺少元素引起的

要对此进行测试,请键入

import sys; sys.path

在用户和 root 中都如此 python 并检查差异。这些需要合并。尝试使用 PYTHONPATH first to test this, but be aware that there are different methods how to adjust sys.path.

如果您只需要为普通(非守护进程)用户修复此问题,调整系统范围的 bash 配置文件将是一个简单的解决方案。

(欢迎任何 questions/feedback...:-)