【Linux+Python】Linux安装Python

最近想弄一个code-server(VScode在线版)到服务器上写Python代码,看了看教程以为很简单,然而在安装Python解释器的时候就搞了好长时间,主要就出在SSL的问题上,网上查了一圈也基本没有有用的,最后结合一些博客加上自己研究终于搞出来了,在此记录分享一下。

准备工作

  • 1台Linux服务器(这里使用Ubuntu16.04)
  • libressl文件(在后面命令中有用wget下载,也可以用这个链接下载后上传到服务器)
  • Python源码文件(同样在后面命令中有用wget下载,也可以用这个链接下载后上传到服务器,这里使用Python3.7.13,低版本的好像有bug,之前用低版本的一直报ssl不built)

安装过程

安装过程大致分为 安装依赖库、编译安装libressl、编译安装Python。

安装依赖库

这步没啥说的,执行apt的安装命令就行

首先更新软件库

apt-get update

然后安装依赖

apt-get install libbz2-dev libncurses5-dev libgdbm-dev liblzma-dev sqlite3 libsqlite3-dev libssl-dev tcl8.6-dev tk8.6-dev libreadline-dev zlib1g-dev uuid-dev libffi-dev

编译安装libressl

这里用libressl替代openssl,因为之前在变异Python的时候总是提示openssl要求版本1.0.2或1.1,但是无论使用1.0.2还是1.1都不行,于是用libressl替代,命令如下

cd ~
wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.0.2.tar.gz
tar -zxvf libressl-3.0.2.tar.gz
cd libressl-3.0.2
./configure --prefix=/usr/local/libressl
make
make install

然后还没有结束,要建立软连接到/usr/bin

ln -s /usr/local/libressl/bin/openssl /usr/bin/openssl
ln -s /usr/local/libressl/include/openssl /usr/include/openssl
echo /usr/local/libressl/lib >> /etc/ld.so.conf.d/libressl-3.0.2.conf
ldconfig -v

如果上述命令中哪一行提示文件已存在,则用mv命令将该文件重命名(可能系统自带openssl的软连接已经存在),如

mv /usr/bin/openssl /usr/bin/openssl.pak

然后查看openssl版本

openssl version

如果是3.0.2就成功安装了,否则检查上面哪步错了,如果要重新make的话最好先make clean一下。

编译安装Python

如果上面步骤都没问题即可安装Python,这里使用Python3.7.13,因为之前使用3.7.2时无论怎么做都会出现SSL问题。

编译安装

首先下载Python源码

cd ~
wget https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tgz

然后解压,并进入解压后的文件夹

tar -zxvf Python-3.7.13.tgz
cd Python-3.7.13

修改文件夹中的Modules/Setup文件

vim Modules/Setup

将以下4行文本前面的#注释去掉

#SSL=/usr/local/ssl
#_ssl _ssl.c \
#        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#        -L$(SSL)/lib -lssl -lcrypto

保存退出。

然后编译安装即可

./configure --prefix=/usr/local/Python3 --enable-optimizations
make
make install

安装成功后,需要进行一些软连接(如果提示文件已存在,则使用上面方法把原来的文件重命名)

ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3.7

配置环境变量

vim /etc/profile

将以下内容添加到最后

export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH

保存退出,并使用以下命令使环境变量生效

source /etc/profile

然后查看python版本

python -V

如果显示3.7.13则安装成功。

然后测试一下ssl,输入python进入python命令行

python

然后执行下面命令

import ssl
import urllib.request
context = ssl._create_unverified_context()
urllib.request.urlopen('https://www.baidu.com/',context=context).read()

如果不报错则到此全部正确。

获取pip

但是到这里还没有完,这样安装的Python可能没有pip(检查安装目录的bin文件夹里有没有pip),不能安装Python的包,因此需要获取pip

cd ~
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

执行结束后再将pip软连接到/usr/bin中(如果提示文件已存在,则使用上面方法把原来的文件重命名)

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3.7

至此,python安装成功。

猜你喜欢

转载自blog.csdn.net/weixin_42147967/article/details/126610951
今日推荐