> 本文作者:丁辉 # Centos安装Python ## Python安装 > 前提条件: > > - 升级 Openssl 版本, 至少 OpenSSL 1.1.1 [OpenSSL源码编译升级](https://gitee.com/offends/Docs/blob/main/Linux/%E5%AE%89%E8%A3%85OpenSSL.md) [Python源码包下载](https://www.python.org/ftp/python/) 1. 下载源码包 ```bash wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz ``` 2. 解压源码包 ```bash tar -zxvf Python-*.tgz && cd cd Python-* ``` 3. 安装编译所需的依赖 ```bash # 软件包组,通常包含用于软件开发和编译的工具,如编译器、调试器、make工具等。 yum groupinstall "Development Tools" -y yum install openssl-devel bzip2-devel libffi-devel -y ``` 4. 配置编译项 ```bash ./configure -q --with-openssl=/usr/local/openssl --prefix=/usr/local/python3.10.13 --with-openssl-rpath=auto --enable-optimizations ``` **参数解释** | 参数 | 描述 | | :---------------------------------: | :----------------------------------------------------------: | | `--with-openssl=/usr/local/openssl` | 指定OpenSSL库的安装位置。这对于编译需要OpenSSL支持的软件(如Python中的_ssl模块)非常重要。这里指的是OpenSSL安装在`/usr/local/openssl`目录下。 | | `--prefix=/usr/local/python3.10.13` | 指定安装目标目录。这意味着所有安装的文件(包括可执行文件、库文件等)将被放置在`/usr/local/python3.10.13`目录下。这有助于避免与系统自带的Python版本冲突,并方便管理不同版本的Python。 | | `--with-openssl-rpath=auto` | 设置运行时链接器搜索OpenSSL库的路径为自动。这确保了在运行时能够找到正确的OpenSSL库,即使它不在标准库路径下。这对于确保程序能够在不同环境中正确运行非常重要。 | | `--enable-optimizations` | 启用额外的优化,比如Profile Guided Optimization(PGO),以提高Python的性能。这会增加编译时间,但生成的Python解释器将运行得更快,特别是对于一些计算密集型的任务。 | | `-q` | 这个参数表示“quiet”的意思,即在执行过程中尽量减少输出信息,只有重要或必要的信息会被显示出来。 | 5. 开始编译 ```bash make ``` > 同时运行 > > ```bash > make -j 4 > ``` 6. 安装 ```bash make altinstall ``` > altinstall:避免替换默认的系统Python版本 7. 创建软连接 ```bash ln -s /usr/local/python3.10.13/bin/python3.10 /usr/local/bin/ ``` 8. 验证 ```bash python3.10 --version ``` 9. 验证 ssl 模块 ```bash python3.10 ``` 输入 ```bash import ssl ssl.OPENSSL_VERSION ``` ## 问题记录 - make 遇到 Could not import runpy module 需要升级 PIP 版本即可解决