通过shell脚本在ubuntu服务器上安装python3.8、相应的pip和virtualenv

通过shell脚本在ubuntu服务器上安装python3.8、相应的pip和virtualenv,python,python-3.x,build,virtualenv,python-packaging,Python,Python 3.x,Build,Virtualenv,Python Packaging,我试图在Jenkins构建服务器中构建一个python项目,从git repo中提取代码 该项目需要从零开始安装python3.8和最新的pip版本以及virtualenv jenkins服务器已经安装了一个全局python2.7,我不想干扰这个设置和名称空间 因此,应该使用新的别名调用新的python,比如说,python3.8--version 我看到了很多分别安装python、pip和vituralenv的参考资料。 正式的安装过程不会使用python安装pip,也不会从构建服务器的角度来

我试图在Jenkins构建服务器中构建一个python项目,从git repo中提取代码

该项目需要从零开始安装python3.8和最新的pip版本以及virtualenv

jenkins服务器已经安装了一个全局python2.7,我不想干扰这个设置和名称空间

因此,应该使用新的别名调用新的python,比如说,
python3.8--version

我看到了很多分别安装python、pip和vituralenv的参考资料。 正式的安装过程不会使用python安装pip,也不会从构建服务器的角度来解决安装问题

因此,我需要一个shell脚本来完成此安装,而不需要任何用户输入提示或操作系统特定的打包工具,也不需要在我期望的别名中安装工具(例如python3.8)


在构建服务器中安装python及其依赖项的最佳实践和推荐方法是什么。

以下脚本将创建一个新的python 3.8安装以及Ubuntu 16.04中安装所需的所有其他依赖项

#!/bin/sh

# install PPA
sudo add-apt-repository ppa:deadsnakes/ppa

# update and install
sudo apt update
sudo apt install python3.8 python3.8-dev python3.8-venv

# setup alternatives
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2

# show menu for selecting the version
sudo update-alternatives --config python3

# or one command to set it
# sudo update-alternatives --set python3 /usr/bin/python3.8

# install the latest pip version to the python3 version. 
curl https://bootstrap.pypa.io/get-pip.py | sudo python3.8

一句忠告,永远不要接触ubuntu中安装的python2.7依赖项或默认python路径,即使你只关心python3.x。地狱开始松动,所有依赖项的安装在此之后开始下降。 始终在新位置安装所需的python版本,并通过新路径调用它,如
python3--version

为了创建一个新的虚拟环境,我使用了标准库

python3 -m venv test_env
source test_env/bin/activate