银河麒麟系统在线安装pip和paramiko

#### 本章主要介绍在linux系统环境下,在线方式安装pip(包管理工具)和paramiko#####

######### 1. pip和pip3下载get-pip.py的地址

https://bootstrap.pypa.io/pip/2.7/get-pip.py

https://bootstrap.pypa.io/pip/3.7/get-pip.py

######### 2.在线安装pip

## 2.1 创建存放目录

[root@test ~]# mkdir -p /Package/python_package/python_pip-2.7

[root@test ~]# mkdir -p /Package/python_package/python_pip-3.7

## 2.2 在线下载python2.7版本的get-pip.py

[root@test ~]# wget https://bootstrap.pypa.io/pip/2.7/get-pip.py -P /Package/python_package/python_pip-2.7

--2024-07-24 15:37:59-- https://bootstrap.pypa.io/pip/2.7/get-pip.py

正在解析主机 bootstrap.pypa.io (bootstrap.pypa.io)... 151.101.188.175, 2a04:4e42:2d::175

正在连接 bootstrap.pypa.io (bootstrap.pypa.io)|151.101.188.175|:443... 已连接。

已发出 HTTP 请求,正在等待回应... 200 OK

长度:1908226 (1.8M) [text/x-python]

正在保存至: “
/Package/python_package/python_pip-2.7/get-pip.py”

get-pip.py 100%[=============================================================================================================>] 1.82M 702KB/s 用时 2.7s

2024-07-24 15:38:04 (702 KB/s) - 已保存 “
/Package/python_package/python_pip-2.7/get-pip.py” [1908226/1908226])

## 2.3 在线下载python3.7版本的get-pip.py

[root@test ~]# wget https://bootstrap.pypa.io/pip/3.7/get-pip.py -P /Package/python_package/python_pip-3.7

--2024-07-24 15:40:11-- https://bootstrap.pypa.io/pip/3.7/get-pip.py

正在解析主机 bootstrap.pypa.io (bootstrap.pypa.io)... 151.101.188.175, 2a04:4e42:4b::175

正在连接 bootstrap.pypa.io (bootstrap.pypa.io)|151.101.188.175|:443... 已连接。

已发出 HTTP 请求,正在等待回应... 200 OK

长度:2635841 (2.5M) [text/x-python]

正在保存至: “
/Package/python_package/python_pip-3.7/get-pip.py”

get-pip.py 100%[=============================================================================================================>] 2.51M 177KB/s 用时 14s

2024-07-24 15:40:27 (184 KB/s) - 已保存 “
/Package/python_package/python_pip-3.7/get-pip.py” [2635841/2635841])

## 2.4安装python2.7版本的pip

# 进入get-pip目录

[root@test ~]# cd /Package/python_package/python_pip-2.7

# 确认python的版本

[root@test python_pip-2.7]# /usr/bin/python -V

Python 2.7.18

# 安装pip

[root@test python_pip-2.7]# /usr/bin/python get-pip.py

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.

Collecting pip<21.0

Downloading pip-20.3.4-py2.py3-none-any.whl (1.5 MB)

|████████████████████████████████| 1.5 MB 3.2 MB/s

Collecting wheel

Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB)

Installing collected packages: pip, wheel

Successfully installed pip-20.3.4 wheel-0.37.1

# 确认pip的路径

[root@test python_pip-2.7]# whereis pip

pip: /usr/bin/pip /usr/bin/pip2.7

# 查看pip版本

[root@test python_pip-2.7]# /usr/bin/pip -V

pip 20.3.4 from /usr/lib/python2.7/site-packages/pip (python 2.7)

# python2.7版本的pip安装paramiko模块

[root@test ~]# /usr/bin/pip install paramiko

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.

Collecting paramiko

Downloading paramiko-2.12.0-py2.py3-none-any.whl (213 kB)

|████████████████████████████████| 213 kB 197 kB/s

Collecting bcrypt>=3.1.3

Downloading bcrypt-3.1.7-cp27-cp27mu-manylinux1_x86_64.whl (59 kB)

|████████████████████████████████| 59 kB 1.8 MB/s

Requirement already satisfied: six in /usr/lib/python2.7/site-packages (from paramiko) (1.15.0)

Collecting pynacl>=1.0.1

Downloading PyNaCl-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl (964 kB)

|████████████████████████████████| 964 kB 1.7 MB/s

Collecting cryptography>=2.5

Downloading cryptography-3.3.2-cp27-cp27mu-manylinux2010_x86_64.whl (2.6 MB)

|████████████████████████████████| 2.6 MB 231 kB/s

Collecting cffi>=1.1

Downloading cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl (390 kB)

|████████████████████████████████| 390 kB 675 kB/s

Collecting ipaddress; python_version < "3"

Downloading ipaddress-1.0.23-py2.py3-none-any.whl (18 kB)

Collecting enum34; python_version < "3"

Downloading enum34-1.1.10-py2-none-any.whl (11 kB)

Collecting pycparser

Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)

Installing collected packages: pycparser, cffi, bcrypt, pynacl, ipaddress, enum34, cryptography, paramiko

Successfully installed bcrypt-3.1.7 cffi-1.15.1 cryptography-3.3.2 enum34-1.1.10 ipaddress-1.0.23 paramiko-2.12.0 pycparser-2.21 pynacl-1.4.0

## 2.5安装python3.7版本的pip

# 进入get-pip目录

[root@test ~]# cd /Package/python_package/python_pip-3.7

# 确认python的版本

[root@test ~]# /usr/bin/python3.7 -V

Python 3.7.9

# 安装pip

[root@test ~]# /usr/bin/python3.7 get-pip.py

Collecting pip<24.1

Downloading pip-24.0-py3-none-any.whl.metadata (3.6 kB)

Collecting wheel

Downloading wheel-0.42.0-py3-none-any.whl.metadata (2.2 kB)

Downloading pip-24.0-py3-none-any.whl (2.1 MB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 1.3 MB/s eta 0:00:00

Downloading wheel-0.42.0-py3-none-any.whl (65 kB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.4/65.4 kB 3.5 MB/s eta 0:00:00

DEPRECATION: targetcli-fb 2.1.fb48 has a non-standard version number. pip 24.1 will enforce this behaviour change. A possible replacement is to upgrade to a newer version of targetcli-fb or contact the author to suggest that they release a version with a conforming version number. Discussion can be found at https://github.com/pypa/pip/issues/12063

Installing collected packages: wheel, pip

Successfully installed pip-24.0 wheel-0.42.0

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

# 确认pip的路径

[root@test ~]# whereis pip

pip: /usr/bin/pip /usr/bin/pip2.7 /usr/local/bin/pip /usr/local/bin/pip3.7

# 查看pip版本

[root@test ~]# /usr/local/bin/pip3 -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

# 找到python3安装的pip3的目录

[root@test ~]# find / -name pip-*

/usr/lib/python2.7/site-packages/pip-20.3.4.dist-info

/usr/share/python-wheels/pip-20.2.2-py2.py3-none-any.whl

/usr/local/lib/python3.7/site-packages/pip-24.0.dist-info

# 进入目录

[root@test ~]# cd /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info

[root@test pip-24.0.dist-info]# ls

AUTHORS.txt entry_points.txt INSTALLER LICENSE.txt METADATA RECORD REQUESTED top_level.txt WHEEL

# 创建一个虚拟环境,决定在目录里你想要的把它和运行的 venv 模块作为一个脚本

[root@test pip-24.0.dist-info]# /usr/bin/python3 -m venv scjgj-env

[root@test pip-24.0.dist-info]# ls

AUTHORS.txt entry_points.txt INSTALLER LICENSE.txt METADATA RECORD REQUESTED scjgj-env top_level.txt WHEEL

# 激活虚拟环境(linux执行命令)

[root@test pip-24.0.dist-info]# source scjgj-env/bin/activate

(scjgj-env) [root@test pip-24.0.dist-info]#

# 在虚拟环境中升级paramiko

激活虚拟环境后,终端提示符会发生变化,这时可以使用 pip 安装包

(scjgj-env) [root@test pip-24.0.dist-info]# pip3 install paramiko

Collecting paramiko

Downloading paramiko-3.4.0-py3-none-any.whl (225 kB)

|████████████████████████████████| 225 kB 88 kB/s

Collecting pynacl>=1.5

Downloading PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (856 kB)

|████████████████████████████████| 856 kB 65 kB/s

Collecting cryptography>=3.3

Downloading cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB)

|████████████████████████████████| 4.0 MB 137 kB/s

Collecting bcrypt>=3.2

Downloading bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (273 kB)

|████████████████████████████████| 273 kB 185 kB/s

Collecting cffi>=1.4.1

Downloading cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (427 kB)

|████████████████████████████████| 427 kB 102 kB/s

Collecting pycparser

Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)

|████████████████████████████████| 118 kB 74 kB/s

Installing collected packages: pycparser, cffi, pynacl, cryptography, bcrypt, paramiko

Successfully installed bcrypt-4.2.0 cffi-1.15.1 cryptography-43.0.0 paramiko-3.4.0 pycparser-2.21 pynacl-1.5.0

WARNING: You are using pip version 20.2.2; however, version 24.0 is available.

You should consider upgrading via the '/usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/python3 -m pip install --upgrade pip' command.

# 升级pip版本

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/python3 -m pip install --upgrade pip

Collecting pip

Downloading pip-24.0-py3-none-any.whl (2.1 MB)

|████████████████████████████████| 2.1 MB 42 kB/s

Installing collected packages: pip

Attempting uninstall: pip

Found existing installation: pip 20.2.2

Uninstalling pip-20.2.2:

Successfully uninstalled pip-20.2.2

Successfully installed pip-24.0

# 确认升级pip后的版本

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/pip -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/lib64/python3.7/site-packages/pip (python 3.7)

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/pip3 -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/lib64/python3.7/site-packages/pip (python 3.7)

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/pip3.10 -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/lib64/python3.7/site-packages/pip (python 3.7)

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/pip3.7 -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/lib64/python3.7/site-packages/pip (python 3.7)

# package安装完成后,退出虚拟环境

(scjgj-env) [root@test pip-24.0.dist-info]# deactivate

[root@test pip-24.0.dist-info]#

# 测试模块paramiko是否安装成功

root@test pip-24.0.dist-info]# /usr/bin/python3

Python 3.7.9 (default, Mar 2 2021, 02:43:11)

[GCC 7.3.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import paramiko

>>>

# 查看python已安装好的package

[root@test ~]# /usr/bin/pip list

[root@test ~]# /usr/local/bin/pip3 list

### 4.安装过程中的报错

## 4.1 python版本问题

/usr/bin/python get-pip.py

ERROR: This script does not work on Python 2.7. The minimum supported Python version is 3.8. Please use https://bootstrap.pypa.io/pip/2.7/get-pip.py instead

## 4.2

## 4.3 警告:以 ‘root’ 用户运行 pip 的风险及解决方案

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

# 4.3.1 警告信息解析

# 这个警告信息主要有以下几个重点:

#权限问题:以 ‘root’ 用户运行 pip 可能会导致权限问题。这是因为 ‘root’ 用户拥有系统的最高权限,pip 安装的软件包将拥有系统范围的权限,这可能会导致其他用户无法访问或修改这些软件包。

#与系统包管理器冲突:在某些 Linux 发行版中,系统包管理器(如 apt, yum 等)管理着系统范围内的软件包。如果以 ‘root’ 用户使用 pip 安装软件包,可能会与系统包管理器发生冲突,导致系统不稳定甚至无法使用。

#系统不可用:以上问题的积累可能会使系统不可用。例如,某些关键的系统文件权限被意外修改,或者系统包管理器无法正确管理软件包。

# 4.3.2 解决方案

为避免上述风险,推荐使用虚拟环境来安装Python包。虚拟环境是一个独立的 Python环境,可以在不影响系统范围内安装的软件包的情况下,安装和管理项目依赖。

# 找到python3安装的pip3的目录

find / -name pip-*

/usr/lib/python2.7/site-packages/pip-20.3.4.dist-info

/usr/share/python-wheels/pip-20.2.2-py2.py3-none-any.whl

/usr/local/lib/python3.7/site-packages/pip-24.0.dist-info

# 进入目录

cd /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info

ls

AUTHORS.txt entry_points.txt INSTALLER LICENSE.txt METADATA RECORD REQUESTED top_level.txt WHEEL

# 创建一个虚拟环境,决定在目录里你想要的把它和运行的 venv 模块作为一个脚本

/usr/bin/python3 -m venv scjgj-env

ls

AUTHORS.txt entry_points.txt INSTALLER LICENSE.txt METADATA RECORD REQUESTED scjgj-env top_level.txt WHEEL

# 激活虚拟环境(linux执行命令)

source scjgj-env/bin/activate

(scjgj-env) [root@test pip-24.0.dist-info]#

# 在虚拟环境中安装包

激活虚拟环境后,终端提示符会发生变化,这时可以使用 pip 安装包

(scjgj-env) [root@test pip-24.0.dist-info]# pip3 install paramiko

Collecting paramiko

Downloading paramiko-3.4.0-py3-none-any.whl (225 kB)

|████████████████████████████████| 225 kB 88 kB/s

Collecting pynacl>=1.5

Downloading PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (856 kB)

|████████████████████████████████| 856 kB 65 kB/s

Collecting cryptography>=3.3

Downloading cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB)

|████████████████████████████████| 4.0 MB 137 kB/s

Collecting bcrypt>=3.2

Downloading bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (273 kB)

|████████████████████████████████| 273 kB 185 kB/s

Collecting cffi>=1.4.1

Downloading cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (427 kB)

|████████████████████████████████| 427 kB 102 kB/s

Collecting pycparser

Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)

|████████████████████████████████| 118 kB 74 kB/s

Installing collected packages: pycparser, cffi, pynacl, cryptography, bcrypt, paramiko

Successfully installed bcrypt-4.2.0 cffi-1.15.1 cryptography-43.0.0 paramiko-3.4.0 pycparser-2.21 pynacl-1.5.0

WARNING: You are using pip version 20.2.2; however, version 24.0 is available.

You should consider upgrading via the '/usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/python3 -m pip install --upgrade pip' command.

# 升级pip版本

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/python3 -m pip install --upgrade pip

Collecting pip

Downloading pip-24.0-py3-none-any.whl (2.1 MB)

|████████████████████████████████| 2.1 MB 42 kB/s

Installing collected packages: pip

Attempting uninstall: pip

Found existing installation: pip 20.2.2

Uninstalling pip-20.2.2:

Successfully uninstalled pip-20.2.2

Successfully installed pip-24.0

# 确认升级pip后的版本

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/pip -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/lib64/python3.7/site-packages/pip (python 3.7)

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/pip3 -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/lib64/python3.7/site-packages/pip (python 3.7)

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/pip3.10 -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/lib64/python3.7/site-packages/pip (python 3.7)

(scjgj-env) [root@test pip-24.0.dist-info]# /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/bin/pip3.7 -V

pip 24.0 from /usr/local/lib/python3.7/site-packages/pip-24.0.dist-info/scjgj-env/lib64/python3.7/site-packages/pip (python 3.7)

# package安装完成后,退出虚拟环境

(scjgj-env) [root@test pip-24.0.dist-info]# deactivate

[root@test pip-24.0.dist-info]#

# 测试模块paramiko是否安装成功

root@test pip-24.0.dist-info]# /usr/bin/python3

Python 3.7.9 (default, Mar 2 2021, 02:43:11)

[GCC 7.3.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import paramiko

>>>