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

Posted

技术标签:

【中文标题】在 SLES 11 上为所有用户安装 Python 2.7【英文标题】:Installing Python 2.7 for all users on SLES 11 【发布时间】:2016-12-09 13:00:34 【问题描述】:

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

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

附:根据@user 的建议,我尝试添加从root 用户的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

【问题讨论】:

【参考方案1】:

可信/官方消息来源:official forum 未回复。除了你提到的SO-link,还有https://unix.stackexchange.com/questions/7644/how-to-do-a-binary-install-of-python-2-7-on-suse-linux-enterprise-server-11,它勾勒了Installing Python 2.7 on SLES 11中描述的方法(SO不是官方的,是吗?;-)

关于您的问题:2. 和 3. 都可能是由 sys.path 中缺少的元素引起的。

要对此进行测试,请键入

import sys; sys.path

在用户和根 python 中并检查差异。这些需要合并。首先尝试使用PYTHONPATH 进行测试,但请注意there are different methods how to adjust sys.path

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

(欢迎提出任何问题/反馈... :-)

【讨论】:

事实上,常规用户 sys.path 中缺少所有“鸡蛋”。谢谢你的回复我担心赏金会无人认领:) @Bostone:这曾经发生在我的一个赏金中,这是一种令人失望的感觉 :)。它对您有足够的帮助吗,还是您需要进一步的帮助? 我正在确定 ;) SLES 11 不支持 2.7 真是太疯狂了。感谢您的帮助,享受赏金 @Bostone:不客气。很好,结果很好。感谢您的赏金。当然,2.7 应该得到很好的支持,但是 ...

以上是关于在 SLES 11 上为所有用户安装 Python 2.7的主要内容,如果未能解决你的问题,请参考以下文章

SLES 11 安装Oracle 11g r2

在Centos6.8上为安装Django1.11.1升级Python2.6到Python3.5

xrdp 未连接到 SLES11 SP4

搭建Pxe服务器无人听应答全自动安装SLES11 SP3系统

在 Ubuntu 上为 libtorrent 安装 Python3 绑定

SLES11 上的 2 个不同版本的 PHP