由于安装最新版ubuntu22.04,python版本较高,无法使用python3.8的环境,在在里记录在ubuntu22.04创建低版本python环境方法,参考链接https://muzing.top/posts/6c3096a1/#%E5%AE%89%E8%A3%85%E5%85%B6%E4%BB%96%E4%BE%9D%E8%B5%96
更新系统软件
# 刷新软件包目录
sudo apt update
# 列出当前可用的更新
sudo apt list --upgradable
# 如上一步提示有可以更新的项目,则执行更新
sudo apt upgrade
安装 GCC 编译器
# 安装 GCC 编译器
sudo apt install gcc
# 检查安装是否成功
gcc -v
# 若显示出 GCC 版本则成功
安装其他依赖
# 刷新软件包目录
sudo apt update
# 安装依赖
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev libncurses-dev libnspr4-dev
下载源代码
在 Python 官网下载界面下载 Python 3.9 的源代码,此处使用目前最新的 3.9。
亦可通过 wget
下载:
# 下载 Python 3.9.12
sudo wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tar.xz
# 下载其他版本只需替换版本号数字
解压并进入该目录,后续的所有命令均在该目录中执行:
# 解压
tar -xf Python-3.9.12.tar.xz
# 进入该目录
cd Python-3.9.12/
配置
# 检查依赖与配置编译
sudo ./configure --enable-optimizations --with-lto --enable-shared
# 编译,-j 后面的数字为参与编译的CPU核心数,根据个人机器配置调整
sudo make -j 12
链接动态库
由于编译配置中有 --enable-shared
的选项,故此时直接使用命令 python3.9
会提示无法找到 libpython3.9.so.1.0
的错误。只需找到该 so
文件,复制(或创建符号链接)到 /usr/lib/
目录下即可:
# 找到 libpython 的位置
$ whereis libpython3.9.so.1.0
libpython3.9.so.1: /usr/local/lib/libpython3.9.so.1.0
# 在 /usr/lib/ 下创建 libpython 的符号链接
$ sudo ln -s /usr/local/lib/libpython3.9.so.1.0 /usr/lib/
使用 Python 3.9
完成安装后,Python 3.9 会与系统原有的 Python 3.10 共存。由于 Ubuntu 系统、安装的其他软件等很可能会依赖于系统原有的 3.10,所以不要移除原有 Python 环境,也不要对 python3
等命令进行修改。
命令行使用
直接在命令行使用 python3.9
命令即可调用新安装的解释器:
# 在命令行使用 Python 交互式解释器
$ python3.9
Python 3.9.12 (main, Apr 22 2022, 18:58:57)
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
# 查看该命令所在位置
$ which python3.9
/usr/local/bin/python3.9
类似的,使用 Python 3.9 的 pip
的命令为 pip3.9
# 查看 pip3.9 版本
$ pip3.9 -V
pip 22.0.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
1. 在安装python3.6.9时遇到问题:
make: *** [Makefile:1112: altinstall] Error 139
解决方法参考网址https://www.jianshu.com/p/c5564d6df939
gcc 版本
gcc -v
首先安装gcc-10
sudo apt-get install gcc-10
设置gcc-10 优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 2
这个时候 gcc看一下版本是不是切换到10 了
然后 make clean 清除一下之前的编译
重新make & make install
成功后gcc 切换回 gcc-11
sudo update-alternatives --config gcc
2. 但该方法未解决,仍然报同样的错误
解决方法参考网址https://cloud.tencent.com/developer/ask/sof/106928733
可以通过在运行./configure
时添加一些附加标志来使其工作。
步骤1- Prerequsities
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev \
libgdbm-dev libnss3-dev libedit-dev libc6-dev
复制
步骤2-下载Python3.6
wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
tar -xzf Python-3.6.15.tgz
复制
步骤3-编译Python
cd Python-3.6.15
./configure --enable-optimizations -with-lto --with-pydebug
make -j 8 # adjust for number of your CPU cores
sudo make altinstall
复制
步骤4-检查Python
python3.6 -V
卸载安装好的python
要在Linux上卸载Python3.6,可以按照以下步骤进行操作:
1. 打开终端。
2. 输入以下命令以查看系统中安装的Python版本:
python3.6 --version
3. 输入以下命令以查看系统中所有安装的Python包:
pip3.6 list
4. 根据上述输出的Python版本和包列表,确定要卸载的Python版本和相关包。
5. 输入以下命令以卸载Python包(以包名为"package_name"为例):
pip3.6 uninstall package_name
6. 重复步骤5,卸载所有需要的Python包。
7. 输入以下命令以卸载Python版本(以版本号为"python3.6"为例):
sudo apt-get remove python3.6
8. 输入以下命令以删除Python的相关配置文件:
sudo rm -rf ~/.local/lib/python*
sudo rm -rf ~/.cache/pip
9. 输入以下命令以删除Python的安装目录(以"/usr/local/python"为例):
sudo rm -rf /usr/local/lib/python3.6
10. 输入以下命令以确认Python已被成功卸载:
python3.6 --version