Python 记录在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 1222 09:51 ./
drwxr-xr-x 10 ftp123 ftp123 4096 1224 09:07 ../
-rw-rw-r--  1 ftp123 ftp123 2130 1222 09:39 fileRedis.py
-rw-rw-r--  1 ftp123 ftp123 5404 1222 09:39 FtpSend.py
-rw-rw-r--  1 ftp123 ftp123 6277 1222 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
  • 遇到该问题的表象: 原因是连接超时,所以需要自己设定安装源,
    ![[Pasted image 20211224104552.png]]

  • 解决方案:在 pip命令后自己设定收集源(-i +url)

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(使用清华镜像)

  • 成功表现:
    ![[Pasted image 20211224104545.png]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值