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
目录
相关文章
|
2月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
65 4
|
29天前
|
Python
Python Internet 模块
Python Internet 模块。
121 74
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
125 63
|
2月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
7天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
20 3
|
2月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
19天前
|
JSON Ubuntu 开发者
ubuntu 22安装lua环境&&编译lua cjson模块
通过上述步骤,可以在 Ubuntu 22.04 系统上成功安装 Lua 环境,并使用 LuaRocks 或手动编译的方式安装 lua-cjson 模块。本文详细介绍了每一步的命令和操作,确保每一步都能顺利完成,适合需要在 Ubuntu 系统上配置 Lua 开发环境的开发者参考和使用。
84 13
|
2月前
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
51 5
|
2月前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
2月前
|
JavaScript 前端开发 Python
python中的OS模块的基本使用
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。博客分享前端技术及全栈开发经验,持续更新中,期待您的关注和支持!🎉🎉🎉
45 0