Skip to content

Instantly share code, notes, and snippets.

@nanmi
Last active December 30, 2021 09:09
Show Gist options
  • Save nanmi/2149bf188b36c9ec1151a64d8a8e102d to your computer and use it in GitHub Desktop.
Save nanmi/2149bf188b36c9ec1151a64d8a8e102d to your computer and use it in GitHub Desktop.
安装Python的俩种方法

安装Python

sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt instlal python-dev

管理多个版本Python

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
sudo update-alternatives --config

安装python对应的pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py

源码编译安装Python

安装依赖

$ apt install libffi-dev

编译

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz  
tar -xzf Python-3.7.1.tgz  
cd Python-3.7.1
mkdir -p /home/{user}/python3  
./configure --prefix=/home/{user}/python3
make -j128
make install

更改环境变量,将以下代码添加到.bashrc文件末尾。
export PATH=/home/{user}/python3/bin:$PATH  

可能出现的问题

Failed to build these modules:
_ctypes


Could not build the ssl module!
Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().
LibreSSL 2.6.4 and earlier do not provide the necessary APIs, https://github.com/libressl-portable/portable/issues/381
解决方案

1.安装 OpenSSL

$ apt install openssl
$ apt install libssl-dev

或者源码编译openssl

$ tar xzvf openssl-1.1.1a.tar.gz
$ cd openssl-1.1.1a
$ ./config --prefix=/usr/local/openssl shared
$ make
$ make install
# 建立软连接
$ ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
$ ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
# 测试是否安装成功
$ openssl version
> OpenSSL 1.1.1a  20 Nov 2018

2.安装 LibreSSL

$ wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.2.tar.gz
$ tar -xzvf libressl-2.8.2.tar.gz
$ cd libressl-2.8.2
$ ./config
$ make
$ make install
# 验证
$ openssl version
> LibreSSL 2.8.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment