linux环境安装python3.7.2

1、下载安装包

  • (1)打开以下链接
    https://www.python.org/downloads/source/
  • (2)点击第一个链接(最新版安装包)
    点击后打开新页面
  • (3)点击第一项,下载gzip压缩的源码包

2、安装必要模块

  python安装之前需要一些必要的模块,如openssl,readline等。
  如果没有这些模块后来使用会出现一些问题,比如没有openssl则不支持ssl相关的功能,并且pip3在安装模块的时候会直接报错;没有readline则python交互式界面删除键和方向键都无法正常使用,至于需要什么模块在make完之后python会给出提示,通过提示进行安装即可装全,下面是需要提前预装的依赖:

yum -y install zlib zlib-devel
yum -y install bzip2 bzip2-devel
yum -y install ncurses ncurses-devel
yum -y install readline readline-devel
yum -y install openssl openssl-devel
yum -y install openssl-static
yum -y install xz lzma xz-devel
yum -y install sqlite sqlite-devel
yum -y install gdbm gdbm-devel
yum -y install tk tk-devel
yum -y install libffi libffi-devel

3、python安装

  • (1)上传python安装包
      rz命令将上面下载的python源码包上传到某个目录。
  • (2)安装
 #解压安装包
tar -xvzf Python-3.7.2.tgz
#进入安装包目录
cd Python-3.7.2 
#配置编译,将安装目录设置为/usr/python
#加上--enable-shared和-fPIC,可以将python3的动态链接库编译出来,默认情况编译完lib下面只有python3.xm.a这样的文件,
python本身可以正常使用,但是如果编译第三方库需要python接口的比如caffe等,则会报错;所以这里建议按照以下方式配置,另外如果openssl不使用系统yum安装的,而是使用自己编译的比较新的版本可以使用--with-openssl=/usr/local/openssl这种方式指定,后面目录为openssl实际安装的目录,另外编译完还要将openssl的lib目录加入ld运行时目录中即可。
./configure --prefix=/usr/python --enable-shared CFLAGS=-fPIC
#编译源码
make
#执行安装
make install

4、配置

  • (1)添加动态链接库路径
       如果不进行这步操作,会出现以下问题:error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
      问题原因:这是因为centos下安装python3没有将编译后python/lib下的文件放入默认库/usr/lib或/lib中,导致初始化时没有加载库文件。
      解决办法:将lib添加至配置信息中
cd /etc/ld.so.conf.d
vim python3.conf #添加/usr/python/lib到文件中
ldconfig #执行ldconfig命令,使修改生效
  • (2)设置软连接
ln -s /usr/python/bin/python3.7 /usr/bin/python3
ln -s /usr/python/bin/pip3.7 /usr/bin/pip3
  • (3)直接将python路径加入环境变量
    可以不用设置软连接,直接将python路径加入环境变量
cd /etc/profile.d
vi python3.sh

在python3.sh增加以下两行代码

export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH
  • (4)测试是否设置成功
    任意地方命令行输入:
python3.7 -V
pip3.7 -V

参考:https://www.cnblogs.com/freeweb/p/5181764.html

你可能感兴趣的:(linux环境安装python3.7.2)