场景
在构建 docker 镜像的时候为了与 TensorFlow、Pytorch 或者其他程序能兼容使用,需要安装指定版本的 python。常用的安装命令 apt-get
有时候不能很”精确“指定,甚至是找不到源。
隔山修路、遇水搭桥:python 官网有所有的版本,下载到本地手动安装。
方法
安装依赖
apt-get install libssl-dev openssl make gcc libffi-dev zlib1g-dev libbz2-dev zlibc wget
下载要安装的 python 版本并解压。这里以 python3.9 为例。
从 Python 官网下载速度很慢,这里推荐一个国内镜像网站
cd /opt
wget https://registry.npmmirror/-/binary/python/3.9.2/Python-3.9.2.tgz
tar xzvf Python-3.9.2.tgz
进入python根目录并编译
cd Python-3.9.2
./configure
make
make install
这就完成安装了。默认安装到 usr/local/bin
路径下。
# ls /usr/local/bin/
2to3 2to3-3.9 easy_install-3.9 idle3 idle3.9 pip3 pip3.9 pydoc3 pydoc3.9 python3 python3-config python3.9 python3.9-config
查看 PATH 路径。
# echo ${PATH}
/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
发现 usr/local/bin
,所以刚才安装的 python3.9 能直接使用。
root@a8998da2dddc:/# python3 --version
Python 3.9.2
两个路径的区别
usr/bin
和 usr/local/bin
都存放安装好的应用程序,二者有什么区别呢?
首先 usr
全程是 Unix System Resource
而不是 User
的什么缩写。
usr/bin
都是系统预装的可执行程序,会随着升级而改变。
usr/local/bin
是给用户存放自己可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。
如果两个目录下有相同的可执行程序,PATH 路径下哪个目录在前面,该目录下的程序优先执行。
更多推荐
Ubuntu 安装指定版本 python
发布评论