Linux安装升级服务:Python3
写在前面:
- 本文在部分内容方面,参考了CSDN部分博主的文章内容,如有冒犯请联系博主协商处理。
- 本文所有安装部分的内容和部分配置的内容都经博主实测有效,如有错误的地方,欢迎大家指正学习。
- 文章创作不易,请各位看官给个三连,博主在此先行感谢了!!!
一、安装环境说明
-
查看当前 Linux 系统的 python 版本
$ python --version Python 2.7.5 $ python Python 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
-
查看系统上所有可用的python版本
$ ll /usr/bin/python* lrwxrwxrwx. 1 root root 7 12月 23 19:48 /usr/bin/python -> python2 lrwxrwxrwx. 1 root root 9 12月 23 19:48 /usr/bin/python2 -> python2.7 -rwxr-xr-x. 1 root root 7144 10月 14 2020 /usr/bin/python2.7
-
查看系统上 python 的文件目录和可执行文件的位置
$ whereis python python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz $ which python /usr/bin/python
-
查看系统上 python 的文件的软链接情况
$ ls -l /usr/bin/python* lrwxrwxrwx. 1 root root 7 12月 23 19:48 /usr/bin/python -> python2 lrwxrwxrwx. 1 root root 9 12月 23 19:48 /usr/bin/python2 -> python2.7 -rwxr-xr-x. 1 root root 7144 10月 14 2020 /usr/bin/python2.7
-
python3 版本对 openssl 版本有所要求:建议升级至 openssl-1.1.1k 及以上版本
$ openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 # 若openssl版本为OpenSSL 1.0.2k版本可能会导致安装不成功
-
下载地址:OpenSSL源码包
-
下载版本为:
openssl-1.1.1k.tar.gz
二、升级 openssl
-
创建软件目录,上传文件至该目录
$ mkdir -p /opt/openssl $ ll -h /opt/openssl/ -rw-r--r-- 1 root root 9.4M 3月 30 20:01 openssl-1.1.1k.tar.gz
-
下载相关依赖包,备份相关目录
# 下载安装openssl服务所需依赖包 $ yum -y install gcc make perl zlib zlib-devel pam pam-devel $ whereis openssl openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz # 备份/usr/lib64/openssl目录 $ mv /usr/lib64/openssl /usr/lib64/openssl.bak # 备份/usr/bin/openssl目录 $ mv /usr/bin/openssl /usr/bin/openssl.bak # 备份/usr/include/openssl目录 $ mv /usr/include/openssl /usr/include/openssl.bak
-
解压、安装 openssl 服务
# 解压、创建安装目录 $ cd /opt/openssl $ tar -zxvf openssl-1.1.1k.tar.gz $ cd openssl-1.1.1k/ $ mkdir -p /usr/local/openssl # 编译、安装openssl服务 $ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --shared $ make && make install
-
创建相关链接,添加动态链接库
$ ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl $ ln -s /usr/local/openssl/include/openssl /usr/include/openssl $ ls -al /usr/bin/openssl $ ls -al /usr/include/openssl $ echo "/usr/local/openssl/lib" >> /etc/ld.so.conf $ ldconfig # 刷新库 # 创建环境变量 $ echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >> /etc/profile $ source /etc/profile # 查看openssl版本 $ openssl version OpenSSL 1.1.1k 25 Mar 2021 $ openssl version -a
三、安装 python3
-
Python 下载地址:
-
在官网下载 Python3 的压缩包
-
上传下载的压缩包至 Linux 系统 root 目录下
-
解压 Python-3.12.2.tgz 压缩包查看目录内容
$ wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz $ tar -zvxf Python-3.12.2.tgz $ cd Python-3.12.2/ $ ls aclocal.m4 config.sub configure.ac Grammar install-sh LICENSE Makefile.pre.in Modules Parser PCbuild pyconfig.h.in README.rst config.guess configure Doc Include Lib Mac Misc Objects PC Programs Python Tools
-
准备源码编译环境,下载相关依赖
$ yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
-
编译&安装 Python3
$ mkdir -p /usr/local/python3 # 创建安装目录 $ ./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
(1) ./configure:用于检查系统环境并生成用于构建软件包的 Makefile。 (2) --prefix=/usr/local/python3:这个选项指定了安装 Python3 的路径。
$ make && make install
-
创建软连接,查看软连接情况
$ ln -s /usr/local/python3/bin/python3 /usr/bin/python3 $ ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 $ ls -n /usr/bin/pip3 lrwxrwxrwx 1 0 0 27 3月 21 18:09 /usr/bin/pip3 -> /usr/local/python3/bin/pip3 $ ls -n /usr/bin/python3 lrwxrwxrwx 1 0 0 30 3月 21 18:09 /usr/bin/python3 -> /usr/local/python3/bin/python3
-
添加 python3 的环境变量
$ echo "PATH=/usr/local/python3/bin:$PATH" >> /etc/profile $ source /etc/profile
-
验证安装是否成功
$ python3 Python 3.12.2 (main, Mar 21 2024, 18:03:32) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> $ python3 --version Python 3.12.2
$ vim test.py name = "Alice" age = 25 print("My name is", name, "and I am", age, "years old.") $ python3 test.py My name is Alice and I am 25 years old.
四、安装使用 pip3
-
基本概述: pip 是 Python 的包管理工具,用于安装和管理 Python 包。
-
常用命令:
pip install -i 索引源 package_name
# 清华大学提供的一个网站,可供pip程序下载第三方包 https://pypi.tuna.tsinghua.edu.cn/simple/ # 阿里云提供的一个网站,可供pip程序下载第三方包 https://mirrors.aliyun.com/pypi/simple/
-
设定默认索引源
# 注意目录, 当前目录为/root目录 $ mkdir -p ~/.pip $ vim ~/.pip/pip.conf [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = mirrors.aliyun.com $ pip3 install numpy
-
安装包:用于安装指定的 Python 包
$ pip3 install package_name
-
升级包:用于升级已安装的包到最新版本
$ pip3 install --upgrade package_name
-
卸载包:用于卸载指定的 Python 包
$ pip3 uninstall package_name
-
列出已安装的包:列出当前环境中已安装的所有 Python 包
$ pip3 list
-
搜索包:用于在 PyPI(Python Package Index)中搜索包
$ pip3 search search_term
-
查看包的详细信息:用于查看特定包的详细信息,包括版本号、作者、依赖关系等
$ pip3 show package_name
-
安装包的特定版本:用于安装特定版本的包
$ pip3 install package_name==version_number
-
常用第三方包:
- 科学计算中常用的:numpy - 数据分析中常用的:pandas - 大数据计算中常用的:pyspark、apache-flink - 图形可视化常用的:matplotlib、pyecharts - 人工智能常用的:tensorflow
五、安装疑问
1、pip 安装第三方包 ssl 服务不可用
-
如果使用 pip 安装 python 的第三方包 (如: numpy),出现如下异常:
$ pip3 install numpy WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. ## 警告:pip配置了需要TLS/SSL的位置,但是Python中的SSL模块不可用
-
解决办法: 升级 openssl 服务,重新安装 Python3,升级办法详情在文章上面
# 注意:建议添加openssl服务的环境变量 $ echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >> /etc/profile $ source /etc/profile # 注意:重新安装python时, 最好链接openssl库安装 $ ./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
-
如若上述办法仍然无法解决问题,则可以考虑如下方法:
$ mkdir -p ~/.pip $ vim ~/.pip/pip.conf [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = mirrors.aliyun.com
$ pip3 install numpy Looking in indexes: http://mirrors.aliyun.com/pypi/simple/ Collecting numpy Downloading http://mirrors.aliyun.com/pypi/packages/0f/50/de23fde84e45f5c4fda2488c759b69990fd4512387a8632860f3ac9cd225/numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.0/18.0 MB 1.8 MB/s eta 0:00:00 Installing collected packages: numpy Successfully installed numpy-1.26.4
2、pip 命令以 root 用户运行环境问题
-
如果安装 Python 后出现如下警告内容:
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
-
解决办法: 创建虚拟环境,虚拟环境是一种隔离的Python环境,允许您在其中安装和管理软件包,而不会影响系统的其他部分。
# 1. 查看当前 Python 是否安装了 venv 模块 $ python3 -m venv --help # 2. 创建虚拟环境,并选择一个目录作为虚拟环境的根目录 $ python3 -m venv pyenv # 创建名为myenv的虚拟环境 # 3. 激活虚拟环境 $ source pyenv/bin/activate # 4. 在激活的虚拟环境中使用pip3 ## 在虚拟环境中使用pip来安装、升级和删除软件包,而不会影响系统范围的Python安装 $ pip3 install pandas # 5. 退出虚拟环境 $ deactivate