最小化安装的CentOS7上离线安装Python3.7和科学库踩坑(gcc+openssl)
CentOS7上离线安装Python3.7
因为服务器在堡垒机里,连不到网,所以所有的服务都要离线安装,虽然看起来步骤不多,但踩得坑真不少o(╥﹏╥)o
先把要用到的文件放到服务器上,我放在/opt下了。
然后解压python包
tar -zxvf Python-3.7.0.tgz
然后进入gcc目录,安装目录下的所有依赖。
rpm -Uvh * --force --nodeps
同理,将gcc-c++ 和 openssl-devel下的依赖安装。
这里有个题外话,当有新的依赖需要安装时,提示有许多新的依赖要安装,可以在一台有网的服务器下执行
https://www.cnblogs.com/qq931399960/p/11120429.html
yum -y install --downloadonly --downloaddir=/opt/openssl-devel/ openssl-devel
可以将所有关联到的依赖包下载到downloaddir这个参数后的路径下,downloadonly参数是只下载不安装。
但是这儿会有个问题,yum文件下用的是python2.7,当你安装了新的python或改变了原2.7的链接时,是会报错的。解决办法,找到报错的文件,将第一行路径中的python改为python2.7.
vi /usr/bin/yum
将所有报错的文件都修改完,就没问题啦。
回到正题
依赖安装完成后,进入python3.7的目录下,执行:
./configure --prefix=/usr/local/python3.7 --with-ssl
prefix参数为安装路径,可自行设置,–with-ssl防止安装完成后pip方法无法调用ssl的问题。
执行完成后,执行:
make&&make install
等待安装完成后,建立一个python的软链接,先把之前的在/usr/bin目录下的python链接删掉,执行:
ln -s /usr/local/python3.7/bin/python3 /bin/python
完成后,为pip也建立一个软链接(用不到pip的可以忽略,这儿是为了在有网的服务器下用pip下载tensorflow等科学库,然后传给离线的服务器)
ln -s /usr/local/python3.7/bin/pip3 /bin/pip
查看python和pip的版本
python -V pip -V
这时的pip版本应该是10.几,如果要用到2.0.0以上的tensorflow的话,要先升级一下。
pip install --upgrade pip -i https://pypi.douban.com/simple
升级完后就能安装,其他的科学库了:
pip install tensorflow==2.2.0 -i https://pypi.douban.com/simple
下载好的库在site-packages文件夹下,拷出来在离线的服务器下就可以用了。
依赖包资源在这儿:链接:https://pan.baidu.com/s/1iqEpw12hao74zCmD-yFcDQ
提取码:ehoc