1. 项目概述
在Linux系统运维和Python开发领域,Ubuntu 18.04 LTS作为长期支持版本至今仍被广泛使用。而Python 3.6.8作为3.6.x系列的最终稳定版本,在兼容性和稳定性方面表现优异。本文将详细介绍在Ubuntu 18.04系统上从源码编译安装Python 3.6.8的完整过程,包含依赖解决、编译优化和后续配置的全套方案。
提示:虽然Ubuntu 18.04默认自带Python 3.6.9,但某些特定场景(如需要精确控制版本号或自定义编译参数)仍需手动安装指定版本。
2. 环境准备与依赖安装
2.1 系统基础检查
首先确认当前系统版本和已安装的Python版本:
lsb_release -a python3 --version对于干净的Ubuntu 18.04系统,建议先执行系统更新:
sudo apt update && sudo apt upgrade -y2.2 编译依赖安装
Python源码编译需要以下开发工具和库文件:
sudo apt install -y build-essential zlib1g-dev libncurses5-dev \ libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev \ libsqlite3-dev wget libbz2-dev各依赖包的作用说明:
zlib1g-dev:压缩库支持libssl-dev:SSL/TLS加密支持libreadline-dev:命令行编辑功能libsqlite3-dev:SQLite数据库集成
注意:如果缺少这些依赖,可能导致编译失败或某些功能模块无法正常使用。
3. Python 3.6.8源码安装
3.1 获取源码包
推荐从Python官方下载指定版本源码:
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz验证文件完整性:
echo "b1a4d710a5e3e9c0636a60ef67a3dfc1 " > Python-3.6.8.tgz.md5 md5sum -c Python-3.6.8.tgz.md53.2 编译配置与优化
解压并进入源码目录:
tar -xvf Python-3.6.8.tgz cd Python-3.6.8配置编译参数(关键步骤):
./configure --enable-optimizations --with-ensurepip=install \ --enable-shared --prefix=/usr/local/python3.6参数说明:
--enable-optimizations:启用PGO优化(提升约10%性能)--with-ensurepip=install:包含pip安装器--enable-shared:生成共享库--prefix:指定安装路径
3.3 编译与安装
启动编译过程(根据CPU核心数调整-j参数):
make -j$(nproc)编译完成后进行安装:
sudo make altinstall重要:使用
altinstall而非install,避免覆盖系统默认Python版本。
4. 环境配置与验证
4.1 共享库配置
由于使用了--enable-shared参数,需要配置动态链接库路径:
echo "/usr/local/python3.6/lib" | sudo tee /etc/ld.so.conf.d/python3.6.conf sudo ldconfig4.2 创建软链接(可选)
为方便使用,可以创建自定义命令别名:
sudo ln -s /usr/local/python3.6/bin/python3.6 /usr/local/bin/python36 sudo ln -s /usr/local/python3.6/bin/pip3.6 /usr/local/bin/pip364.3 验证安装
检查版本和基本功能:
python36 -V pip36 --version python36 -c "import ssl; print(ssl.OPENSSL_VERSION)"5. 虚拟环境配置
5.1 创建专用虚拟环境
建议为项目创建独立环境:
pip36 install --upgrade pip setuptools wheel pip36 install virtualenv python36 -m virtualenv ~/venv/py365.2 激活与使用
激活虚拟环境:
source ~/venv/py36/bin/activate验证环境中的Python版本:
python -V # 应显示3.6.86. 常见问题与解决方案
6.1 编译错误排查
问题1:ModuleNotFoundError: No module named '_ctypes'
解决方案:安装libffi开发包后重新编译
sudo apt install libffi-dev make clean ./configure [原参数] make -j$(nproc) sudo make altinstall问题2:SSL模块不可用
解决方案:确保openssl开发包已安装
sudo apt install libssl-dev6.2 运行时问题
问题3:python3.6: error while loading shared libraries
解决方案:确认已正确配置库路径并执行ldconfig
sudo ldconfig -v | grep python3.66.3 pip使用问题
问题4:pip安装包时出现权限错误
建议方案:始终在虚拟环境中使用pip,或添加--user参数
pip36 install --user package_name7. 系统集成建议
7.1 多版本Python管理
对于需要管理多个Python版本的情况,推荐使用update-alternatives:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/python3.6/bin/python3.6 1 sudo update-alternatives --config python37.2 IDE配置
在VS Code中配置Python解释器路径:
{ "python.pythonPath": "/usr/local/python3.6/bin/python3.6" }对于PyCharm:
- 打开设置 → Project → Python Interpreter
- 添加新的解释器路径为
/usr/local/python3.6/bin/python3.6
8. 性能优化建议
8.1 编译期优化
在./configure阶段可以添加以下参数:
CFLAGS="-march=native -O3" ./configure --enable-optimizations8.2 运行时优化
在~/.bashrc中添加:
export PYTHONPYCACHEPREFIX="$HOME/.pycache" export PYTHONDONTWRITEBYTECODE=18.3 pip加速配置
创建或修改~/.pip/pip.conf:
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com9. 安全注意事项
- 定期更新pip和setuptools:
pip36 install --upgrade pip setuptools- 检查已知漏洞:
pip36 install safety safety check --full-report避免使用root权限运行pip安装
对于生产环境,建议使用虚拟环境或容器化部署
10. 卸载方法
如需卸载手动安装的Python 3.6.8:
sudo rm -rf /usr/local/python3.6 sudo rm /etc/ld.so.conf.d/python3.6.conf sudo ldconfig sudo rm /usr/local/bin/python36 /usr/local/bin/pip36最后从~/.bashrc中移除相关环境变量设置。