Linux上安装python3

1.说明

  本文记录从源码安装python3指定版本,安装python3之前切记安装好必要的依赖,例如openssl,如果没有
openssl,后续使用python3导入ssl模块会报问题

2.安装

2.1 安装依赖选项

sudo apt-get install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

要保证openssl安装成功。如果上述ssl安装不成功,可以源码进行安装。
Openssl下载路径:openssl下载

2.2 从源码安装python

下载:

wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz

解压该源码后,可以采用修改Modules/Setup

# OPENSSL=/path/to/openssl/directory  #一定要对好路径
OPENSSL=/usr/local/openssl
 _ssl _ssl.c \
     -I$(OPENSSL)/include -L$(OPENSSL)/lib \
     -lssl -lcrypto
_hashlib _hashopenssl.c \
     -I$(OPENSSL)/include -L$(OPENSSL)/lib \
     -lcrypto

# To statically link OpenSSL:
# _ssl _ssl.c \
#     -I$(OPENSSL)/include -L$(OPENSSL)/lib \
#     -l:libssl.a -Wl,--exclude-libs,libssl.a \
#     -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a
#_hashlib _hashopenssl.c \
#     -I$(OPENSSL)/include -L$(OPENSSL)/lib \
#     -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a

需要打开注释,指明好OPENSSL路径等。
如果使用中,需要对默认安装路径/usr/local/bin,进行软件链接,可以进行:

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

上面是使用软链接形式进行链接,如果直接安装到指定的路径:

./configure --prefix=/usr --with-ssl
#上述安装路径是在/usr/bin

3. 常见问题

  1. pip升级导致的,ModuleNotFoundError: No module named 'pip' 解决:
    python -m ensurepip  #还原pip
    python -m pip install --upgrade pip #升级pip
    
  2. 切换其它下载源,保证下载速度(切换到清华源)
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    
    切换到清华源,比如按照selenium, 方便很多