我遵循了Software Collections Quick Start,现在我已经安装了 Python 3.5。如何让它始终在我的 中启用~/.bashrc
,这样我就不必手动启用它scl enable rh-python35 bash
?
2 回答
使用该scl_source
功能。
在其中创建一个新文件/etc/profile.d/
以在启动时自动启用您的收藏:
$ cat /etc/profile.d/enablepython35.sh
#!/bin/bash
source scl_source enable python35
这个答案对那些在服务器上具有有限身份验证访问权限的人会有所帮助。
python3.5
我在 HostGator 的共享主机中遇到了类似的问题。Python3.5
必须在登录后每次该死的时间启用。这是我解决问题的 10 个步骤:
通过 scl 脚本
python_enable_3.5
或scl enable rh-python35 bash
.通过执行来验证它是否已启用
python3.5 --version
。这应该给你你的python版本。执行
which python3.5
以获取其路径。在我的情况下,它是/opt/rh/rh-python35/root/usr/bin/python3.5
. 您可以使用此路径再次获取版本(只是为了验证此路径是否适合您。)太棒了,现在请
exit
跳出当前的shellscl
。现在,让我们通过这个完整的 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
正如Tamas 的回答中提到的,我们必须找到那个
so
文件。locate
在共享主机中不起作用,您也无法安装它。使用以下命令查找该文件所在的位置:
find /opt/rh/rh-python35 -name "libpython3.5m.so.rh-python35-1.0"
- 上面的命令将打印找到的文件的完整路径(第二行)。就我而言,输出是
find: `/opt/rh/rh-python35/root/root': Permission denied
/opt/rh/rh-python35/root/usr/lib64/libpython3.5m.so.rh-python35-1.0
- 这是python3.5在这样的共享主机中工作的完整命令,它会给出版本,
LD_LIBRARY_PATH=/opt/rh/rh-python35/root/usr/lib64 /opt/rh/rh-python35/root/usr/bin/python3.5 --version
- 最后,为了速记,在 ~/.bashrc 中附加以下别名
alias python351='LD_LIBRARY_PATH=/opt/rh/rh-python35/root/usr/lib64 /opt/rh/rh-python35/root/usr/bin/python3.5'
- 为了验证,重新加载
.bashrc
bysource ~/.bashrc
并执行python351 --version
.
好了,你去吧,现在每当你再次登录时,你必须python351
欢迎你。
这不仅限于python3.5
,而且在scl
安装其他软件时会有所帮助。