3

我遵循了Software Collections Quick Start,现在我已经安装了 Python 3.5。如何让它始终在我的 中启用~/.bashrc,这样我就不必手动启用它scl enable rh-python35 bash

4

2 回答 2

5

使用该scl_source功能。

在其中创建一个新文件/etc/profile.d/以在启动时自动启用您的收藏:

$ cat /etc/profile.d/enablepython35.sh
#!/bin/bash
source scl_source enable python35

请参阅如何使 Red Hat Software Collection 在重新启动/注销后持续存在?背景和细节。

于 2017-01-28T14:47:10.657 回答
0

这个答案对那些在服务器上具有有限身份验证访问权限的人会有所帮助。

python3.5我在 HostGator 的共享主机中遇到了类似的问题。Python3.5必须在登录后每次该死的时间启用。这是我解决问题的 10 个步骤:

  1. 通过 scl 脚本python_enable_3.5scl enable rh-python35 bash.

  2. 通过执行来验证它是否已启用python3.5 --version。这应该给你你的python版本。

  3. 执行which python3.5以获取其路径。在我的情况下,它是/opt/rh/rh-python35/root/usr/bin/python3.5. 您可以使用此路径再次获取版本(只是为了验证此路径是否适合您。)

  4. 太棒了,现在请exit跳出当前的shell scl

  5. 现在,让我们通过这个完整的 python3.5 路径再次获取版本/opt/rh/rh-python35/root/usr/bin/python3.5 --version

    它不会给你版本,而是一个错误。在我的情况下,它是

/opt/rh/rh-python35/root/usr/bin/python3.5: error while loading shared libraries: libpython3.5m.so.rh-python35-1.0: cannot open shared object file: No such file or directory
  1. 正如Tamas 的回答中提到的,我们必须找到那个so文件。locate在共享主机中不起作用,您也无法安装它。

    使用以下命令查找该文件所在的位置:

find /opt/rh/rh-python35 -name "libpython3.5m.so.rh-python35-1.0"
  1. 上面的命令将打印找到的文件的完整路径(第二行)。就我而言,输出是
find: `/opt/rh/rh-python35/root/root': Permission denied
/opt/rh/rh-python35/root/usr/lib64/libpython3.5m.so.rh-python35-1.0
  1. 这是python3.5在这样的共享主机中工作的完整命令,它会给出版本,
LD_LIBRARY_PATH=/opt/rh/rh-python35/root/usr/lib64 /opt/rh/rh-python35/root/usr/bin/python3.5 --version
  1. 最后,为了速记,在 ~/.bashrc 中附加以下别名
alias python351='LD_LIBRARY_PATH=/opt/rh/rh-python35/root/usr/lib64 /opt/rh/rh-python35/root/usr/bin/python3.5'
  1. 为了验证,重新加载.bashrcbysource ~/.bashrc并执行python351 --version.

好了,你去吧,现在每当你再次登录时,你必须python351欢迎你。

这不仅限于python3.5,而且在scl安装其他软件时会有所帮助。

于 2021-02-15T13:11:54.543 回答