使用virtualenv使得Python2和Python3并存

1:下载python3源码并安装

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar zxvf Python-3.6.4.tgz
cd Python-3.6.4.tgz
./configure --enable-shared --prefix=/usr/local
make && make altinstall

 

安装完之后,python3.6就存在于/usr/local/bin/中了。

 

此时直接运行python3.6还是会报错:

/usr/local/bin/python3.6: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

 

可以通过设置环境变量解决:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

 

也可以使用下面的方法:

在目录 /etc/ld.so.conf.d 下,建立 python3.conf
并在 python3.conf 中加入一下内容:

/usr/local/lib/

 

然后运行:ldconfig

 

2:使用virtualenv创建虚拟环境

创建虚拟环境:

virtualenv -p /usr/local/bin/python3.6 py36env

执行上述命令后,会在当前目录创建py36env文件夹,该文件夹即为我们创建的虚拟环境。

 

3:激活虚拟环境

[root@localhost ~]# source py36env/bin/activate
(py36env) [root@localhost ~]# python -V
Python 3.6.4

 

可以看见在提示符之前增加了(py36env)字段

 

4:退出虚拟环境 

(py36env) [root@localhost ~]# deactivate
[root@localhost ~]# 

 

附注:Python3的交互环境中,无法使用箭头方向键和tab:

网上查到的答案大多是安装readline包,但是装上之后再交互环境中会发生崩溃:

*** Error in `python': free(): invalid pointer: 0x000000000XXXXXXXX ***

 

最后,发现需要安装 python-gnureadline包,地址是:https://github.com/ludwigschwardt/python-gnureadline/releases,在Python3环境下安装即可解决。

 

posted @ 2017-12-25 11:34  gqtc  阅读(640)  评论(0编辑  收藏  举报