【发布时间】:2020-02-10 15:30:18
【问题描述】:
我已经按照https://linuxize.com/post/how-to-install-python-3-on-centos-7/ 的指南在我的 CentOS 机器上安装了 python 3.6,它安装了带有以下内容的 python 3:
sudo yum install rh-python36
然而,默认的python版本仍然是python 2。指南提到我可以先运行scl enable rh-python36 bash来运行python 3,然后再使用python 3。但是,这仅适用于该会话 - 注销并重新登录将恢复到 python 2。根据How to set Python3.5.2 as default Python version on CentOS?,可以将 python 3 设置为默认值:
sudo ln -fs /usr/bin/python3 /usr/bin/python
但是,这对我不起作用,因为由于某种原因,我在 /usr/bin/ 中没有任何 python3 文件 - 我只有 python、python2、python2.7、python2.7-config、@987654331 @ 和 python-config (尽管上面安装了带有 yum 的 python 3)。
【问题讨论】:
-
你可以使用
which python3找到python3的完整路径,然后你可以使用ln -fs这个路径。但是 Linux 对系统中的许多元素使用 Python,并且将python3代替python会产生问题 - 系统可能会崩溃,因为python3中的某些函数的工作方式与python2中的不同。 -
你可以把
scl enable rh-python36 bash放到文件~/.bashrc中,每次登录都会运行。 -
@furas 我需要将 python 3 用于服务器自动运行的 cron 作业,在这种情况下将
scl enable rh-python36 bash放入~/.bashrc工作吗? -
不能在 cron 中使用
python3 script.py? -
顺便说一句:Linux 在脚本的第一行使用“shebang”(
#!)来告知系统程序使用什么程序来运行脚本。如果您在脚本中使用#!/usr/bin/env python3(并将其设置为可执行chmod +x script.py),那么它应该始终使用python3来运行此脚本。