当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux下多个Python版本安装教程

    栏目:Linux/apache问题 时间:2019-10-10 11:21

    因为环境或学习的需要,我们可能需要在服务器上安装多个python版本,安装一个更新的python版本后,使用软链来进行共存。

    这个时候需要进行源码编译安装。

    当然后续开发项目可以直接跑在虚拟环境下隔离开来,就不再需要在服务器上安装多个不同版本的包了。

    下载Python源码

    从http://www.python.org/download/根据需要的版本下载源文件。

    例如上图就是我在官网直接找到3.5.6版本的下载页面,点击的tar源码包进行下载。

    编译安装

    补充

    注意编译安装python前最好先保证系统己安装上以下库

    yum install zlib
    yum install zlib-devel
    yum install openssl
    yum install openssl-devel
    yum install readline-devel

    解压源码包

    tar zxvf Python-3.5.6.tgz
    cd Python-3.5.6

    配置选项

    sudo ./configure --enable-optimizations --prefix=/usr/local/python-3.5.6 --with-zlib --with-readline
    --enable-optimizations 为最优安装,建议使用这个参数。
    --prefix为指定安装的路径

    进行编译安装

    sudo make
    sudo make install

    修改Python软链

    默认python命令是在/usr/bin/目录下,需要在这里把软链修改成3.5.6的版本,顺便建立一个3.5.6的软链。

    上图是原默认软链接,是python2.7的,其实它也己经默认建立了一个python2的软链接了。

    重新命名默认python软链接为python2.7以便3.5的版本成为默认环境变量

    sudo mv /usr/bin/python /usr/bin/python2.7

    建立python3.5版本的软链接

    sudo ln -s /usr/local/python-3.5.6/bin/python3.5 /usr/bin/python

    当然,也可以不做上一步,而是将3.5版本的软链接成python3之类也是可行的。

    比如我做的就是新增python3的软链接指向python3.5所在的目录。
    顺便也将配置文件也做了一个软链接指向:

    sudo ln -s /usr/local/python-3.5.6/bin/python3.5-config /usr/bin/python3-config

    补充

    注意 如无特别需要,推荐命名成不同python的软链接,因为你会发觉要是你直接改了原来指向旧版本的软链接的话,pip,virtualenv等依赖原版本python的工具需要改它的py文件头的环境变量。

    如果你修改了原软链接,使得python实际指向的是新版本的python的话,pip等仍依赖旧版本的工具要么重装要么修改它py文件的首行,按实际情况重新指向你的旧版本原版本的python环境,例如此处我就可直接改成/usr/bin/python2

    虚拟环境设置不同版本的python

    创建好项目目录,cd进到目录下。

    在创建python虚拟环境时,可以指定虚拟环境要使用的python版本,例如下命令(使用-p参数指明python解释器的路径):

     -p PYTHON_EXE, --python=PYTHON_EXE
     The Python interpreter to use, e.g.,
     --python=python3.5 will use the python3.5 interpreter
     to create the new environment. The default is the
     interpreter that virtualenv was installed with
     (/usr/bin/python)