由于在Debian10中python3.11版本不能直接使用apt-get安装,需要编译安装
- 下载源码
wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
- 解压源码
tar -xzf Python-3.11.3.tgz
- 进入解压后的目录
cd Python-3.11.3
- 进入源代码目录。在终端中运行以下命令:
cd Python-3.11.3
- 配置编译选项。在终端中运行以下命令:
./configure –enable-optimizations
./configure –enable-optimizations –with-ensurepip=install –enable-shared
- 编译源代码。在终端中运行以下命令:
make -j 8 #这里的8指的是活动的cpu核数,取决的系统的cpu核数
- 安装 Python。在终端中运行以下命令:
make altinstall
- 检查 Python 是否安装成功。在终端中运行以下命令:
python3.11 -V
- 如果输出 Python 3.11.3 的版本号,则表示安装成功。
Q&A
Current thread 0x00007f19e59b7740 (most recent call first):
generate-posix-vars failed
make[3]: * [Makefile:853: pybuilddir.txt] Error 1
make[3]: Leaving directory '/root/Python-3.11.3'
make[2]: * [Makefile:770: build_all_generate_profile] Error 2
make[2]: Leaving directory '/root/Python-3.11.3'
make[1]: * [Makefile:746: profile-gen-stamp] Error 2
make[1]: Leaving directory '/root/Python-3.11.3'
make: * [Makefile:758: profile-run-stamp] Error 2
执行make之后报错这些怎么解决
- 这个错误消息表明在编译 Python 时出现了问题,可能是因为缺少依赖项或者编译选项不正确。
以下是一些可以尝试的解决方法:
- 确认已经安装了构建 Python 所需的所有依赖项。在 Debian 10上,可以使用以下命令安装 Python 3.11 的依赖项:
apt-get update #更新apt源,确保没有问题
apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget #安装以上软件包
- 确认已经正确设置了编译选项。在 Python 源代码目录下运行以下命令来配置编译选项:
./configure –enable-optimizations –with-ensurepip=install –enable-shared
# 在这个命令中,–enable-optimizations 选项启用了优化编译,–with-ensurepip=install 选项启用了 pip 安装,–enable-shared 选项编译共享库。请根据需要修改这些选项。
- 确认已经正确编译了 Python。运行以下命令来编译 Python:
make
如果上述方法都无法解决问题,可以尝试使用 make clean 命令清除编译缓存并重新编译 Python。
make clean
然后重新设置编译
./configure –enable-optimizations –with-ensurepip=install –enable-shared
执行make进行安装
make
如果仍然遇到问题,可以尝试从 Python 官网下载最新的源代码并重新编译安装,或者在 Python 官方网站的社区论坛上寻求帮助。
卸载方法
- 进入之前编译安装 Python 3.11.3 的源代码目录。运行以下命令卸载 Python 3.11.3:
make uninstall
如果没有使用 make install 命令安装 Python,则可能需要使用以下命令:
sudo make altinstall
- 然后再使用以下命令卸载 Python:
sudo rm /usr/local/bin/python3.11
sudo rm -rf /usr/local/lib/python3.11
注意,这些命令将删除 Python 3.11.3 的可执行文件、库文件和其他相关文件。如果之前安装的其他软件依赖于 Python 3.11.3,则可能会影响到这些软件的正常使用。
- 检查是否删除了所有 Python 3.11.3 的文件。可以运行以下命令来确定是否还有其他文件存在:
which python3.11
- 如果该命令返回 /usr/local/bin/python3.11,则可能还需要手动删除该文件。
sudo rm /usr/local/bin/python3.11
- 然后再运行以下命令来删除 Python 3.11.3 的其他文件:
sudo rm -rf /usr/local/include/python3.11
sudo rm -rf /usr/local/share/python3.11
- 注意一点,卸载 Python 3.11.3 可能会影响到系统和其他应用程序。在执行此操作之前,确保了解可能的风险,并做好备份。