Python 记录在Ubuntu上的一次模块缺失的摸排检查工作

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 记录在Ubuntu上的一次模块缺失的摸排检查工作

记录在Ubuntu上的一次模块缺失的摸排检查工作

#python

ftp123@ubuntutest-virtual-machine:~/Recv/123$ cd ~
ftp123@ubuntutest-virtual-machine:~$ ls
bin  Data  examples.desktop  FtpSend.py  Recv  Snd  src  XY_send_file.sh
ftp123@ubuntutest-virtual-machine:~$ cd bin/
ftp123@ubuntutest-virtual-machine:~/bin$ ls
clear_file.sh
ftp123@ubuntutest-virtual-machine:~/bin$ cd $xy_src
ftp123@ubuntutest-virtual-machine:~/src$ ls
fileRedis.py  FtpSend.py  GetRedis.py
ftp123@ubuntutest-virtual-machine:~/src$ ll
total 28
drwxrwxr-x  2 ftp123 ftp123 4096 12月 22 09:51 ./
drwxr-xr-x 10 ftp123 ftp123 4096 12月 24 09:07 ../
-rw-rw-r--  1 ftp123 ftp123 2130 12月 22 09:39 fileRedis.py
-rw-rw-r--  1 ftp123 ftp123 5404 12月 22 09:39 FtpSend.py
-rw-rw-r--  1 ftp123 ftp123 6277 12月 22 09:39 GetRedis.py
# ---------------------------------------------------------------------
# 这里开始作为使用python并且发现没有找到redis模块的问题的开始
ftp123@ubuntutest-virtual-machine:~/src$ python fileRedis.py 
  File "fileRedis.py", line 7
SyntaxError: Non-ASCII character '\xe7' in file fileRedis.py on line 8, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
ftp123@ubuntutest-virtual-machine:~/src$ ^C
ftp123@ubuntutest-virtual-machine:~/src$ python fileRedis.py 
Traceback (most recent call last):
  File "fileRedis.py", line 3, in <module>
    import GetRedis
  File "/home/ftp123/src/GetRedis.py", line 4, in <module>
    import redis
ImportError: No module named redis
# 问题现象描述结束
# ---------------------------------------------------------------------
# ---------------------------------------------------------------------
# 第一次尝试使用pip安装redis
ftp123@ubuntutest-virtual-machine:~/src$ pip install redis
Command 'pip' not found, but can be installed with:
apt install python-pip
Please ask your administrator.
# 显示系统并没有安装pip命令,所以转而进行pip的安装
ftp123@ubuntutest-virtual-machine:~/src$ apt install python-pip
# 以下为系统安装 pip 过程
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
ftp123@ubuntutest-virtual-machine:~/src$ su - 
Password: 
root@ubuntutest-virtual-machine:~# apt install python-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
...
# pip 安装完毕,开始使用pip安装redis         
root@ubuntutest-virtual-machine:~# pi
pi1toppm         pico             pinentry         pinentry-x11     ping6            pivot_root
pi3topbm         piconv           pinentry-curses  ping             pinky            
pic              pidof            pinentry-gnome3  ping4            pip3 
# 这里其实已经有隐形提示,在一般情况下pip命令是只有pip的。
# 当出现 pip3 的情况下,就说明了此时系统上装有Python2 和 Python3 两个版本。
# 使用pip3 安装redis
root@ubuntutest-virtual-machine:~# pip3 install redis
Collecting redis
  Downloading https://files.pythonhosted.org/packages/b1/9c/838dbabd16f7dad05d3b83abad11560a2c6cc72fe913a02fa487fc915b9d/redis-4.0.2-py3-none-any.whl (119kB)
    25% |████████▏                       | 30kB 1.5kB/s eta 0:01:01Exception:
...
error_catcher
    raise ReadTimeoutError(self._pool, None, 'Read timed out.')
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
# 因为网络问题第一次安装失败。
# 这里开始确认系统上有没有redis环境
root@ubuntutest-virtual-machine:~# find / -name redis*
/var/log/redis
/var/log/redis/redis-server.log.4.gz
/var/log/redis/redis-server.log
...
^C
# 这里通过查找确认了本地有redis 库文件。所以退出再次重试
root@ubuntutest-virtual-machine:~# exit
logout
ftp123@ubuntutest-virtual-machine:~/src$ python fileRedis.py 
Traceback (most recent call last):
  File "fileRedis.py", line 3, in <module>
    import GetRedis
  File "/home/ftp123/src/GetRedis.py", line 4, in <module>
    import redis
ImportError: No module named redis
# 依旧显示库缺失,和可以使用的用户确认本地环境变量的差异性。无误
# 选择再次安装Python的 redis库。
ftp123@ubuntutest-virtual-machine:~/src$ vi ~/.profile 
ftp123@ubuntutest-virtual-machine:~/src$ su -
Password: 
# 使用root用户 第二次安装
root@ubuntutest-virtual-machine:~# pip3 install redis
Collecting redis
  Downloading
   ...
Successfully installed deprecated-1.2.13 redis-4.0.2 wrapt-1.13.3
# 这里安装完毕,不再急于启动程序,首先通过python 尝试调用库。
root@ubuntutest-virtual-machine:~# python 
Python 2.7.17 (default, Feb 27 2021, 15:10:58) 
# 其实这里就已经有答案了,我通过find查找到的redis库是通过pip3安装的,路径在Python3.6下
# 但是这里的版本是2.7 。存在多个版本的时候特别是2和3都有的情况下,一定要使用Python2或Python3来指定版本。
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import redis
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named redis
>>> q
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'q' is not defined
>>> 
KeyboardInterrupt
>>> 
KeyboardInterrupt
>>> import redis
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named redis
>>> 
[1]+  Stopped                 python
# 想要看看在这个安装路径下调用可不可以,因为python的特性是先在当前目录下寻找。
root@ubuntutest-virtual-machine:~# cd anaconda3/lib/python3.7/site-packages/redis-3.5.3.dist-info/METADATA
-su: cd: anaconda3/lib/python3.7/site-packages/redis-3.5.3.dist-info/METADATA: No such file or directory
# 成功使用的正确方式
# 前提安装完成redis
ftp123@ubuntutest-virtual-machine:~/src$ python3 fileRedis.py 
{'type': 'message', 'pattern': None, 'channel': b'second_product', 'data': b'20210606000000'}
send 20210606000000.bz2 end


再附赠解决国内链接GitHub网络不稳的解决方式:


怎么解决Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection

遇到该问题的表象: 原因是连接超时,所以需要自己设定安装源,

9f0c56a0383bde9a9ffb77dbe23e31e6_8f31366eb3e24baaa38815ae92db22c6.png

root@ubuntutest-virtual-machine:~# pip install requests -i http://pypi.douban.com/simple --trusted-host pypi.douban.com(通过豆瓣)
root@ubuntutest-virtual-machine:~# pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple(使用清华镜像)

成功表现:

049affaa9a558cc7e0113bc7646c567d_113d9fea7a414f0dbc39cefe621e8b25.png

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
97 68
|
2天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
13 5
|
2天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
8 1
|
3天前
|
XML 前端开发 数据格式
超级详细的python中bs4模块详解
Beautiful Soup 是一个用于从网页中抓取数据的 Python 库,提供了简单易用的函数来处理导航、搜索和修改分析树。支持多种解析器,如 Python 标准库中的 HTML 解析器和更强大的 lxml 解析器。通过简单的代码即可实现复杂的数据抓取任务。本文介绍了 Beautiful Soup 的安装、基本使用、对象类型、文档树遍历和搜索方法,以及 CSS 选择器的使用。
13 1
|
4天前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
8 1
|
4天前
|
Python
SciPy 教程 之 SciPy 模块列表 8
SciPy教程之常量模块单位类型介绍。该模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例展示了部分长度单位的转换值,例如英寸、英尺、海里等。
9 1
|
1天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
6 0
|
1天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
7 0
|
2天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
6 0
|
3天前
|
Python
SciPy 教程 之 SciPy 模块列表 11
SciPy教程之SciPy模块列表11:单位类型。常量模块包含公制单位、质量单位、角度换算、时间单位、长度单位、压强单位、体积单位、速度单位、温度单位、能量单位、功率单位、力学单位等。体积单位示例展示了不同体积单位的换算,如升、加仑、流体盎司、桶等。
8 0