ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

记录一次python多版本和软连接指向不对导致的尴尬报错:import pymysql ModuleNotFoundError: No module named ‘pymysql‘

2021-02-09 09:01:17  阅读:226  来源: 互联网

标签:bin python pymysql python3.6 报错 usr pip root


前提条件

之前为了测试一键安装脚本,安装了python3.7,却忘记了服务器上已经有了pythton3.6,然后正常添加了软连接到/usr/bin目录,其实测试并没有替换成功,因为我没有先删除软连接。

然后后面执行python send.py文件时,一直报错,百思不得其解:

Traceback (most recent call last):
  File "src/send.py", line 6, in <module>
    from src.fetchData import get_day_list, get_today_hours
  File "/project/python/email/src/fetchData.py", line 1, in <module>
    import pymysql
ModuleNotFoundError: No module named 'pymysql'

出现这个问题,肯定是pip默认安装错了为止,但是每次pip list检查的时候,都会发现PyMYSQL存在列表中

然后执行whereis命令发现竟然有两个版本的python,随后想到是不是pip安装包指向为止错了

[root@AlexWong email]# whereis python
python: /usr/bin/python3.6m /usr/bin/python3.6 /usr/bin/python /usr/lib/python3.6 /usr/lib64/python3.6 /usr/local/lib/python3.6 /usr/include/python3.6m /opt/python/bin/python3.7m /opt/python/bin/python3.7m-config /opt/python/bin/python3.7-config /opt/python/bin/python3.7 /usr/share/man/man1/python.1.gz
[root@AlexWong email]# whereis pip
pip: /usr/bin/pip /usr/lib/python3.6/bin/pip3.6

# 查看新安装版本下的pip3安装的包,发现不存在
[root@AlexWong email]# /opt/python/bin/pip3 list
Package    Version
---------- -------
pip        10.0.1 
setuptools 39.0.1 

# 查看软连接
[root@AlexWong email]# ll /usr/bin/
lrwxrwxrwx  1 root root           10 Feb  5 19:00  pip -> //bin/pip3
lrwxrwxrwx. 1 root root           23 Dec 12 19:54  pip-3 -> /etc/alternatives/pip-3
lrwxrwxrwx. 1 root root           22 Dec 12 19:54  pip3 -> /etc/alternatives/pip3
lrwxrwxrwx  1 root root            8 Aug 25 03:31  pip-3.6 -> ./pip3.6
-rwxr-xr-x  1 root root          209 Aug 25 03:31  pip3.6
lrwxrwxrwx  1 root root           23 Feb  5 18:51  python -> /opt/python/bin/python3
lrwxrwxrwx. 1 root root           25 Dec 12 19:54  python3 -> /etc/alternatives/python3
lrwxrwxrwx  1 root root           31 Nov  4 12:04  python3.6 -> /usr/libexec/platform-python3.6
lrwxrwxrwx  1 root root           32 Nov  4 12:04  python3.6m -> /usr/libexec/platform-python3.6m
lrwxrwxrwx. 1 root root           26 Dec 12 19:54  pyvenv-3 -> /etc/alternatives/pyvenv-3
-rwxr-xr-x  1 root root          446 Aug 25 01:59  pyvenv-3.6

pip -> //bin/pip3 是错误的,应该是/opt/python/bin/pip3
说明脚本中自动执行软链接没有替换成功;

为了保险起见,我需要清理下服务器的环境,只保留一个python和pip版本:

删除3.6的所有软连接

[root@AlexWong email]# rm -rf /usr/bin/python3.6m /usr/bin/python3.6 /usr/lib/python3.6
[root@AlexWong email]# rm -rf /usr/lib64/python3.6 /usr/local/lib/python3.6 /usr/include/python3.6m

新增软链接
记得一定要先删除老的软连接

# python
[root@AlexWong email]# rm -rf /usr/bin/python
[root@AlexWong email]# ln -s /opt/python/bin/python3 /usr/bin/python

# pip
[root@AlexWong email]# rm -rf /usr/bin/pip
[root@AlexWong email]# ln -s /opt/python/bin/pip3 /usr/bin/pip

测试

[root@AlexWong email]# whereis python
python: /usr/bin/python /opt/python/bin/python3.7m /opt/python/bin/python3.7m-config /opt/python/bin/python3.7-config /opt/python/bin/python3.7 /usr/share/man/man1/python.1.gz
[root@AlexWong email]# whereis pip
pip: /usr/bin/pip /opt/python/bin/pip3.7 /opt/python/bin/pip

再次执行python也没有报错了

标签:bin,python,pymysql,python3.6,报错,usr,pip,root
来源: https://blog.csdn.net/qq_26003101/article/details/113765821

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有