Linux下多个Python版本安装教程

因为环境或学习的需要,我们可能需要在服务器上安装多个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)

例:

virtualenv -p /usr/bin/python2 ENV2.7 #创建python2.7的虚拟环境
virtualenv -p /usr/bin/python3 ENV3.5 #创建python3.5的虚拟环境
virtualenv --python=python3 my-env #创建python3.5的虚拟环境

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

报找不到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:

tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11

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

./configure
make
make install

python导入zlib

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

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命令进行解压

tar xvfz virtualenv-16.0.0.tar.gz
cd virtualenv-16.0.0

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

virtualenv创建虚拟环境

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

sudo python3 /home/operation/virtualenv-16.0.0/virtualenv.py py3

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

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

operation@opensuse-wordpress:/work> sudo virtualenv --python=python3 my_py3_env
[sudo] password for root:
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr/local/python-3.5.6'
New python executable in /work/my_py3_env/bin/python3
Also creating executable in /work/my_py3_env/bin/python
Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing setuptools, pip, wheel...done.

虚拟隔离环境目录如下:

具体virtualenv的使用命令等见相关文章,在此就不再详述。
如此,在liunx下己经可以实现多版本的python完美共存。

更多关于python安装教程的文章请参考《python各版本安装教程》

更多精彩书单,请点击python编程必备书单

领取干货:零基础入门学习python视频教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • linux安装python修改默认python版本方法

    linux默认是安装了python,默认是安装python2.6.6,可能安装的版本是不能符合我们需要的python要求的.我们需要重新安装python的版本,今天演示一下安装python3 首先下载一个  wget  文件的地址  执行命令进行下载 下载完成以后进行解压,解压完成以后进行安装,执行tar -zxvf Python-3.6.1.tgz解压 cd Python-3.6.1 进入目录 ./configure --prefix=/usr/local/python3  配置python安

  • Linux更新Python版本及修改python默认版本的方法

    linux下更新Python版本并修改默认版本,有需要的朋友可以参考下. 很多情况下拿到的服务器python版本很低,需要自己动手更改默认python版本 1.从官网下载python安装包(这个版本可以是任意版本3.3 2.7 2.6等等) wget http://python.org/ftp/python/2.7/Python-2.7.tar.bz2 2.解压并安装 tar -jxvf Python-2.7.tar.bz2 cd Python-3.3.0 ./configure make al

  • Linux下多个Python版本安装教程

    因为环境或学习的需要,我们可能需要在服务器上安装多个python版本,安装一个更新的python版本后,使用软链来进行共存. 这个时候需要进行源码编译安装. 当然后续开发项目可以直接跑在虚拟环境下隔离开来,就不再需要在服务器上安装多个不同版本的包了. 下载Python源码 从http://www.python.org/download/根据需要的版本下载源文件. 例如上图就是我在官网直接找到3.5.6版本的下载页面,点击的tar源码包进行下载. 编译安装 补充 注意编译安装python前最好先保

  • Linux下MySQL 5.6.27 安装教程

    本文实例为大家分享了Linux下MySQL 5.6.27 安装教程,供大家参考,具体内容如下 1.下载地址 https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz 2.将压缩包上传到服务器 3.解压 tar -zxf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz 4.移动压缩包至mysql文件夹下 mp  mysql-5.6.27-linux-gli

  • Linux下Kafka分布式集群安装教程

    Kafka(http://kafka.apache.org/) 是由 LinkedIn 使用 Scala 编写的一个分布式消息系统,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础,具有高水平扩展和高吞吐量.Spack.Elasticsearch 都支持与 Kafka 集成.下面看一下几种分布式开源消息队列系统的对比: Kafka 集群架构: 一般不建议直接使用 Kafka 自带的 Zookeeper 建立 zk 集群,这里我们使用独

  • Win7 64环境下Oracle10g 64位版本安装教程

    刚接触Oracle不久,安装部署链接Oracle的时候,出现很多问题,单从这点上来说,SQL Server真是太友好了. 1.如果之前安装过Oracle软件,建议完全卸载(究竟有没有必要_不知道_我是这么做的) 2.清理过旧版本的Oracle后,开始安装Oracle10g服务器端,首先得有一个安装包 试一试搜索这个关键字:10204_vista_w2k8_x64_production_db 安装这个版本是没有问题的. 3.服务器端下载完成以后,那么安装吧,安装图解,随手百度就可以了,比如这个:w

  • Linux下ZooKeeper分布式集群安装教程

    ZooKeeper 就是动物园管理员的意思,它是用来管理 Hadoop(大象).Hive(蜜蜂).pig(小猪)的管理员,Apache Hbase.Apache Solr.Dubbo 都用到了 ZooKeeper,其实就是一个集群管理工具,是集群的入口.ZooKeeper 是一个分布式的.开源的程序协调服务,是 Hadoop 项目下的一个子项目.ZooKeeper 主要应用场景包括集群管理(主从管理.负载均衡.高可用的管理).配置文件的集中管理.分布式锁.注册中心等.实际项目中,为了保证高可用,

  • Linux下redis5.0.5的安装过程与配置方法

    一. 下载redis 我一般去这里下载:redis下载地址 也可以自行去官网下载 提示:此处安装的为redis-5.05的版本 二.上传redis安装包(我的安装目录为/data/local/tool/redis-5.0.5) 1.创建目录/data/local/tool并进入该目录 mkdir -p /data/local/tool 2.上传下载好的压缩包 注:我用的xshell的配套工具xftp进行上传 三.安装redis 1.解压 在/data/local/tool目录下执行 [root@

  • Linux下mysql 5.6.17 安装图文教程

    本文实例为大家分享了mysql 5.6.17 安装教程简单版,供大家参考,具体内容如下 1.linux版mysql下载(建议不要下5.7,安装的时候各种bug啊,5.6是最好) 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x

  • mac下pycharm设置python版本的图文教程

    安装了pycharm 5.0.1,创建了测试项目,发现python的版本是2.6.9的,系统自带的版本好像是2.7的,为什么这样,怎么切换到2.7 看了一下系统到底装了些什么版本 居然有两个版本 接下来设置解释器的路径 Pycharm>Preferences>Build,Excution,Deployment>Console>Python Console 设置External Libraries Pycharm>Project:项目名>Project Interpret

  • python Windows最新版本安装教程

    目录 1.官网下载地址 2.打开exe安装 3.是否安装成功 1.官网下载地址 在官网找到你想安装的版本 官网地址:https://www.python.org/并且选择下载windows版本 目前最新的版本是3.10.1,在稳定版中下拉选择一个你想要的版本,直接下载installer即可,我下载的是最新版本.(如果你的电脑是win7或者XP系统,就需要下载旧一点的版本了,他上面也有提示) 如果下载很慢的话,可以打开手机热点,电脑连接手机热点后再重新下载,速度应该会有所提升.或者使用国内镜像:h

  • Linux下mysql 5.6.17安装图文教程详细版

    linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很大,300M左右.以下介绍linux使用官方编译好的二进制包安装mysql. mysql-5.6.17-linux-glibc2.5-i686.tar.gz mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz linux系统,32位.6

随机推荐