CentOS7中安装Python3😄
众所周知…CentOS中默认只有Python2,那么想使用Python3并指定版本的话,只能靠自己编译安装了。
先切换到root,安装Development tools,还有一些依赖项:
1 | yum groupinstall "Development tools" |
安装高版本的sqlite3, 避免在后面使用时出现问题,比如gerapy依赖的django要求sqlite在3.8版本以上,而通过yum安装的版本为sqlite3.7。
1 | wget https://github.com/sqlite/sqlite/archive/version-3.28.0.tar.gz |
开始下载安装,我选择了3.7.3版本:
1 | wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz |
在configure时,配置目录、开启安装pip的选项、链接sqlite3
1 | LD_RUN_PATH=/usr/local/sqlite3/lib ./configure --prefix=/usr/local/python3 --with-ensurepip=install --enable-shared --enable-optimizations LDFLAGS="-L /usr/local/sqlite3/lib" CPPFLAGS="-I /usr/local/sqlite3/include" |
注意: 此处的--enable-shared
选项是确保为Python构建了共享库,否则在未来的某一天可能遇到类似这样的错误:
1 | OSError: Python library not found: libpython3.7.so.1.0, libpython3.7m.so.1.0, libpython3.7mu.so.1.0, libpython3.7m.so |
当看到Successfully installed pip-19.0.3 setuptools-40.8.0
就代表已经安装成功了。
编译完成后,需要将共享库拷贝至/usr/lib64
目录下
1 | cp /usr/local/python3/lib/libpython3.7m.so.1.0 /usr/lib64 |
要不然在后面会出现问题,不过这里除了拷贝之外,可能还有更好的解决方案:
1 | error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory |
使用ln命令做软链接:
1 | ln -s /usr/local/python3/bin/python3 /usr/bin/python3 |
在命令行中输入python3时,可以看到
1 | python3 |
另外,为pip设置一下TUNA的更新源,可以加快下载的速度。
1 | pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple |
接下来就可以愉快的使用了👀