怎么在Linux系统中安装多个版本的Python

这篇文章将为大家详细讲解有关怎么在Linux系统中安装多个版本的Python,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

下载Python源码

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

怎么在Linux系统中安装多个版本的Python

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

编译安装

补充

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

yuminstallzlib
yuminstallzlib-devel
yuminstallopenssl
yuminstallopenssl-devel
yuminstallreadline-devel

解压源码包

tarzxvfPython-3.5.6.tgz
cdPython-3.5.6

配置选项

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

进行编译安装

sudomake
sudomakeinstall

修改Python软链

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

怎么在Linux系统中安装多个版本的Python

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

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

sudomv/usr/bin/python/usr/bin/python2.7

建立python3.5版本的软链接

sudoln-s/usr/local/python-3.5.6/bin/python3.5/usr/bin/python

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

怎么在Linux系统中安装多个版本的Python

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

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

补充

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

怎么在Linux系统中安装多个版本的Python

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

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

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

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

-pPYTHON_EXE,--python=PYTHON_EXE
ThePythoninterpretertouse,e.g.,
--python=python3.5willusethepython3.5interpreter
tocreatethenewenvironment.Thedefaultisthe
interpreterthatvirtualenvwasinstalledwith
(/usr/bin/python)

例:

virtualenv-p/usr/bin/python2ENV2.7#创建python2.7的虚拟环境
virtualenv-p/usr/bin/python3ENV3.5#创建python3.5的虚拟环境
virtualenv--python=python3my-env#创建python3.5的虚拟环境

之所以装多个版本的python,有一个原因很重要,也就是想要使用virtualenv创建隔离的虚拟环境的时候指定不同python版本。但是前面我进行编译安装的时候没有指定编译安装上zlib库,就会出现以下如图问题:

怎么在Linux系统中安装多个版本的Python

报找不到zlib模块错误。

所以最好还是系统原环境变量安装成高版本的python,或进行python编译安装的时候记得加上--with-zlib。最好--with-zlib-devel和readline也带上。

当然,补救办法也是有的,就是重新进行编译安装。(重新进行本文最开始的操作,当然本文最开始笔者己经补充更正过了编译安装时的配置。)

笔者由于重新编译后仍然报zlib模块错误,笔者并不想弄污原来python2.7的环境,所以决定尝试virtualenv下载源码来使用,而zlib也进行编译安装来让python3也能正常导入zlib模块。

下载zlib模块并进行编译安装

官网http://www.zlib.net/下载最新版本的zlib源码文件,我下载的是zlib-1.2.11.tar.gz

安装zlib:

tarxzvfzlib-1.2.11.tar.gz
cdzlib-1.2.11

建议默认路径安装,编译三部曲:

./configure
make
makeinstall

python导入zlib

如下图,编译安装完成zlib后,进python3测试己经可能正常导入zlib包。

怎么在Linux系统中安装多个版本的Python

zlib安装完后,libz.a在/usr/local/lib/,opensuse中zlib.h默认放在/usr/local/include/中。其它linux的zlib.h文件一般在/usr/include中。

重新编译python并指定zlib

如果还发生少数导入不成功,或你想直接软链接升级python旧版本的,可能需要重新编译python。

进入Python源码文件目录,重新编译Python

sudo./configure--enable-optimizations--prefix=/usr/local/python-3.5.6--with-zlib=/usr/include

或者:

./configure--enable-optimizations--prefix=/usr/local/python-3.5.6--with-zlib-dir=/usr/local/lib

都可以完成python对zlib库的支持,在python源码中直接import zlib即可使用zlib了。

下载virtualenv源码包

直接到pypi下载16.0.0版本。tar命令进行解压

tarxvfzvirtualenv-16.0.0.tar.gz
cdvirtualenv-16.0.0

此目录下文件如下,我们主要用到的并不是setup安装,而是直接使用它的virtualenv.py文件。

怎么在Linux系统中安装多个版本的Python

virtualenv创建虚拟环境

在项目目录下直接指定python版本及virtualenv.py的绝对路径进行创建虚拟环境:

sudopython3/home/operation/virtualenv-16.0.0/virtualenv.pypy3

怎么在Linux系统中安装多个版本的Python

可以不进行全局安装,而是用户下进行虚拟化环境可以直接使用python3 后接virtualenv.py运行,完美解决需求。

也可以使用原python2下的全局virtualenv来执行,一样可以创建,如:

operation@opensuse-wordpress:/work>sudovirtualenv--python=python3my_py3_env
[sudo]passwordforroot:
Runningvirtualenvwithinterpreter/usr/bin/python3
Usingbaseprefix'/usr/local/python-3.5.6'
Newpythonexecutablein/work/my_py3_env/bin/python3
Alsocreatingexecutablein/work/my_py3_env/bin/python
Pleasemakesureyouremoveanypreviouscustompathsfromyour/root/.pydistutils.cfgfile.
Installingsetuptools,pip,wheel...done.

虚拟隔离环境目录如下:

怎么在Linux系统中安装多个版本的Python

关于怎么在Linux系统中安装多个版本的Python就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

发布于 2021-03-02 23:48:36
收藏
分享
海报
0 条评论
180
上一篇:怎么在易语言中安装支持库 下一篇:如何在windows系统中安装pycharm
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码