Bootstrap

解决ImportError: No module named mysql.connector

背景:
在arm架构的服务器里安装mysql-connector-python包,安装成功后,发现无法使用。

# 安装mysql-connector-python包
rpm -ivh --force --nodeps mysql-connector-python-8.0.22-1.el8.aarch64.rpm

#安装完成后,测试是否可用
python
Python 2.7.5 (default, Feb  5 2025, 15:33:05) 
[GCC 8.5.0 20210514 (Red Hat 8.5.0-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
ImportError: No module named mysql.connector

查看了python库的路径,已经安装了mysql.connector

ls /usr/lib64/python2.7/site-packages/mysql/connector/
abstracts.py         charsets.py          constants.py         cursor.py            django/              __init__.pyo         pooling.pyc          version.pyc
abstracts.pyc        charsets.pyc         constants.pyc        cursor.pyc           errorcode.py         locales/             pooling.pyo          version.pyo
abstracts.pyo        charsets.pyo         constants.pyo        cursor.pyo           errorcode.pyc        network.py           protocol.py          
authentication.py    connection_cext.py   conversion.py        custom_types.py      errorcode.pyo        network.pyc          protocol.pyc         
authentication.pyc   connection_cext.pyc  conversion.pyc       custom_types.pyc     errors.py            network.pyo          protocol.pyo         
authentication.pyo   connection_cext.pyo  conversion.pyo       custom_types.pyo     errors.pyc           optionfiles.py       utils.py             
catch23.py           connection.py        cursor_cext.py       dbapi.py             errors.pyo           optionfiles.pyc      utils.pyc            
catch23.pyc          connection.pyc       cursor_cext.pyc      dbapi.pyc            __init__.py          optionfiles.pyo      utils.pyo            
catch23.pyo          connection.pyo       cursor_cext.pyo      dbapi.pyo            __init__.pyc         pooling.py           version.py

问题的关键在于:arm架构下,python库的安装路径与x86架构下不一样(大家可自行研究一下),这里解决办法是:

cp -r /usr/lib64/python2.7/site-packages/* /usr/local/lib/python2.7/site-packages/

再去测试一下,就可以使用了。

本题留两个作业:
1.arm架构下的 /usr/lib64 与 /usr/local/lib 路径的区别
2.rpm指定路径(/usr/local/lib/)安装是否可行

;