登陆公司的线上机器使用Python的时候,使用的是root用户安装好的或者系统自带的全局Python。通常该Python的版本较低,同时自己没有root权限去对全局Python升级,所以要在非root用户下安装自己指定版本的Python。本文主要讲述对于非root用户如何安装使用特定的Python版本。

安装Python

  Python版本库https://www.python.org/ftp/python/,此处我选择最新的3.6.1版本。在安装Python的时候,需要使用--prefix指定安装的路径(将userhome替换为当前用户名即可)。

1
2
3
4
5
6
7
$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
$ tar -xzf Python-3.6.1.tgz
$ cd Python-3.6.1
$ mkdir -p /home/userhome/python36
$ ./configure --prefix="/home/userhome/python36”
$ make
$ make install

安装相关库

  Python3.6.1中自带了pip,所以我们无需单独安装pip。接下来我们就可以使用pip安装我们想要的模块了(Python3需要使用pip3命令安装)。

1
2
3
$ cd /home/userhome/python36/bin/
$ ./pip3 install request
$ ./pip3 install sklearn

使用

  使用Python时,为了避免使用全局的Python,我们需要进入相应的目录下启动Python,启动Python时我们可以看到当前启动的Python版本。

1
2
3
4
5
6
$ cd /home/userhome/python36/bin/
$ ./python3
Python 3.6.1 (default, Jun 2 2017, 10:21:09)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

  每次进入特定的目录启动Python会很麻烦,我们可以通过配置~/.bashrc使用指定的变量运行Python。

1
$ vi ~/.bashrc

  在文件末尾追加下列内容(其中alias为别名,可以参考博文):

1
alias pyzh='/home/userhome/python36/bin/python3'

  然后使用source ~/.bashrc让该配置生效(不需要root权限),接着我们就可以在任意目录下通过pyzh进入Python3控制台了。

参考:http://www.csuldw.com/2016/05/06/2016-05-06-python-and-pip/