一、背景
某一个服务依赖的环境是由gcc4编译的python,但本机基于anaconda2安装的python,默认编译为gcc7,本机默认的python gcc版本也是gcc7,本机的gcc环境是gcc4。
二、需求
要在anaconda的虚拟环境中,将python的gcc版本从7改成4,且不影响本机默认的环境配置(再次用anaconda安装Python时,gcc版本依然是7)
三、本机环境检查
1、本机的gcc版本
命令:gcc --version
2、anaconda2默认安装的python环境的gcc编译版本
首先输入命令,source activate env_name 进入环境env_name ,然后输入命令,python查看gcc编译版本。
3、本机默认安装的python gcc版本
macOS、centos等系统默认自带python ,输入命令python查看gcc版本。
可见,基于anaconda2默认安装的python环境的gcc编译版本和本机默认安装的python gcc版本是相同的。
四、更改anaconda的虚拟环境下安装的python的gcc版本,且不改变anaconda默认、本机默认的gcc版本
1、进入虚拟环境
source activate env_name
2、下载Python源码
https://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
3、解压Python源码
tar zxf Python-2.7.3.tgz
cd Python-2.7.3
4、export PATH环境,确保在gcc4环境下
export PATH=/opt/compiler/gcc-4.8.2/bin/:$PATH
5、生成Makefile文件,配置python的安装路径
./configure --prefix=/home/work/tools/python2.7 --enable-shared --enable-unicode=ucs4
6、编译、安装
make
make install
7、编辑~/.bashrc文件,确保使用新安装的Python
export PATH=/home/work/tools/python2.7/bin:$PATH
8、下载pip安装包
https://bootstrap.pypa.io/get-pip.py
9、安装pip
python get-pip.py
如果执行失败,需要更新pip源:(这一步没实验,因为安装pip成功了),成功跳到10
mkdir -p $HOME/.pip/
echo -e "[global]\nindex-url = http://pip.baidu.com/pypi/simple" >> $HOME/.pip/pip.conf
echo -e "[install]\ntrusted-host = pip.baidu.com" >> $HOME/.pip/pip.conf
echo -e "[easy_install]\nindex-url = http://pip.baidu.com/pypi/simple" >> $HOME/.pydistutils.cfg
10、修改pip模块安装路径
vim /home/work/tools/python2.7/lib/python2.7/site.py
找到USER_SITE,USER_BASE,修改变量为:
USER_SITE = "/home/work/tools/python2.7/lib/python2.7/site-packages"
USER_BASE = "/home/work/tools/python2.7"
11、在bashrc中增加Python的路径
export PATH=/home/work/tools/python2.7/bin:$PATH
五、结果验证
可以看到虚拟环境下的GCC版本已经变为4了。