1. 程式人生 > >python指令碼執行時報ImportError: No module named MySQLdb的處理

python指令碼執行時報ImportError: No module named MySQLdb的處理

一.問題描述

執行py指令碼時,提示ImportError: No module named MySQLdb錯誤,如下:
[[email protected] sh]# python 1.py
Traceback (most recent call last):
File "1.py", line 4, in <module>
import MySQLdb
ImportError: No module named MySQLdb

版本:centOS 6.6

二.問題分析
先檢視當前python版本
[[email protected] sh]# python -V
Python 2.7.13
[

[email protected] sh]# python
Python 2.7.13 (default, Apr 11 2017, 17:58:38)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

檢視OS安裝的python相關情況:
[[email protected] sh]# rpm -qa|grep python
.....
.....
MySQL-python-1.2.3-0.3.c1.1.el6.x86_64
python-2.6.6-52.el6.x86_64
......
就是說OS存在兩個python版本2.6.6和2.7.13,猜測與多個版本同時存在會引起上面報錯,所以嘗試刪除2.6.6版,先是刪除了MySQL-python,再刪除python,報錯如下:
yum remove python-2.6.6-52.el6.x86_64
........................
.........................
--> Running transaction check
---> Package redhat-lsb-compat.x86_64 0:4.0-7.el6.centos will be erased
--> Finished Dependency Resolution
Error: Trying to remove "yum", which is protected
提示yum有保護,不能移除,採用跳過相依賴包來直接刪除:rpm -e --nodeps python-2.6.6-52.el6.x86_64 成功,再安裝MySQL-python,卻提示如下:
[

[email protected] sh]# yum install MySQL-python
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

檢視yum和python的rpm是否安裝,確認系統已安裝yum和python的的rpm包。
檢視一下系統命令:
#yum命令存在
[[email protected] sh]# ll /usr/bin/yum
-rwxr-xr-x. 1 root root 801 Oct 16 2014 /usr/bin/yum

[[email protected]

bin]# pwd
/usr/bin
[[email protected] bin]# ls -al|grep python
-rwxr-xr-x. 1 root root 11232 Oct 16 2014 abrt-action-analyze-python

原來python的軟連線原始檔已經不存在,所以出現上面錯誤:
重新做一個python的軟連線:
# ln -s /usr/local/python27/bin/python /usr/bin/python
由於yum只相容python 2.6,而不相容2.7,所以老版本還是要找回來,等於現在又要走回去,重頭再來。
cd /usr/local/src/
mkdir Python-2.6.6
cd /media/Packages (在os安裝盤中)
cp python-2.6.6-52.el6.x86_64.rpm /usr/local/src/Python-2.6.6/
cp python-urlgrabber-3.9.1-9.el6.noarch.rpm /usr/local/src/Python-2.6.6/
cp python-devel-2.6.6-52.el6.x86_64.rpm /usr/local/src/Python-2.6.6/
cp python-libs-2.6.6-52.el6.x86_64.rpm /usr/local/src/Python-2.6.6/
cp yum-3.2.29-60.el6.centos.noarch.rpm /usr/local/src/Python-2.6.6/
cd /usr/local/src/Python-2.6.6/
[[email protected] Python-2.6.6]# rpm -Uvh --replacepkgs *.rpm
warning: python-2.6.6-52.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:python-libs ########################################### [ 20%]
2:python ########################################### [ 40%]
3:python-urlgrabber ########################################### [ 60%]
4:yum ########################################### [ 80%]
5:python-devel ########################################### [100%]

更改yum的python版本:
vi /usr/bin/yum
#!/usr/bin/python改為#!/usr/bin/python-2.6.6
將python改名:
[[email protected] bin]# mv /usr/bin/python /usr/bin/python-2.6.6
[[email protected] bin]# ln -s /usr/local/python27/bin/python /usr/bin/python

再安裝:yum install MySQL-python 安裝成功!
[[email protected] sh]# rpm -qa|grep MySQL-python
MySQL-python-1.2.3-0.3.c1.1.el6.x86_64

執行py指令碼時,依然提示:ImportError: No module named MySQLdb錯誤,說明這個與有多個python版本同時存在沒有關係。

三.問題解決
懷疑是python版本與MySQL-python版本不一致引起,所以從網上下載python 2.7.13對應的MySQL-python-1.2.5進行安裝,如下:
[[email protected]>MySQL-python-1.2.5]# python setup.py build
Traceback (most recent call last):
File "setup.py", line 7, in <module>
import setuptools
ImportError: No module named setuptools
這次提示ImportError: No module named setuptools,說明沒有找到setuptools包,需要下載安裝:
wgethttp://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build ----正常完成
python setup.py install ----正常完成
同時需要安裝:yum install python-devel。
[email protected] MySQL-python-1.2.5]# python setup.py build
sh: mysql_config: command not found
Traceback (most recent call last):
File "setup.py", line 17, in <module>
metadata, options = get_config()
File "/data/tool/MySQL-python-1.2.5/setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "/data/tool/MySQL-python-1.2.5/setup_posix.py", line 25, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not foun
這次丟擲的錯誤與上面不同,從提示看,說明有個檔案屬性沒開啟,修改site.cfg,將mysql_config這個屬性開啟,如下:
[options]
# embedded: link against the embedded server library
# threadsafe: use the threadsafe client
# static: link against a static library (probably required for embedded)

embedded = False
threadsafe = True
static = False

# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
mysql_config = /apps/svr/mariadb10/bin/mysql_config

注意以上mysql_config那行,與安裝的mysql目錄有關,自己去找自己安裝的mysql目錄即可。

[[email protected]  MySQL-python-1.2.5]# python setup.py build

running build
running build_py
creating build
......
成功完成.
[[email protected] MySQL-python-1.2.5]#python setup.py install
running install
running bdist_egg
running egg_info
..................
..................
Installed /usr/local/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg
Processing dependencies for MySQL-python==1.2.5
Finished processing dependencies for MySQL-python==1.2.5
成功完成。
再執行py指令碼,這個不再提示No module named MySQLdb錯誤了,而是libmysqlclient.so.18檔案找不到
[[email protected] sh]# python 1.py
Traceback (most recent call last):
File "1.py", line 4, in <module>
import MySQLdb
File "build/bdist.linux-x86_64/egg/MySQLdb/__init__.py", line 19, in <module>
File "build/bdist.linux-x86_64/egg/_mysql.py", line 7, in <module>
File "build/bdist.linux-x86_64/egg/_mysql.py", line 6, in __bootstrap__
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory
修改/etc/profile檔案裡,新增如下內容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/apps/svr/mariadb10/lib:/usr/local/lib
並執行source /etc/profile
再執行python 1.py不再報錯。

相關推薦

python指令碼執行時報ImportError: No module named MySQLdb處理

一.問題描述 執行py指令碼時,提示ImportError: No module named MySQLdb錯誤,如下: [[email protected] sh]# python 1.py Traceback (most recent call last):

python專案在cmd中執行出現ImportError: No module named xxx總結

網上關於這個問題已經有很成熟的解答,這裡做一個總結提醒自己,也算提醒後來人。 比如,我有一個python專案,目錄結構如下: python_project     util         a.py   &nb

linux7中python ImportError: No module named pymc 處理

簡單的 com RoCE AS install size pack otrs lap linux7中python ImportError: No module named pymc 處理方法 系統環境 #cat /etc/redhat-release CentOS Lin

python使用mysql-connector-python連線mysql時報No module named 'mysql.connector'; 'mysql' is not a package

情況是這樣的: 我在專案A下建立了一個python檔案,編寫程式碼 import mysql.connector mydb = mysql.connector.connect( host="hostname", # 資料庫主機地址 port='port', u

解決python報錯:ImportError: No module named shutil_get_terminal_size 的方法

我的環境:Ubuntu 16.04.5 LTS 修改這個檔案: $HOME/.local/lib/python2.7/site-packages/IPython/utils/terminal.py 這個路徑下沒有該檔案的話,可以到這個地方找:/usr/local/lib/python2.7/dist-pa

python安裝報錯ImportError: No module named 'xxx'問題

1. 錯誤顯示如:ImportError: No module named 'selenium' 解決方法: (1)下載模組或包     selenium問題,下載selenium-2.48.tar.gz 地址:http://pyp

明明已經安裝了某個模組,python報錯:ImportError: No module named ***

筆者初學python,碰見一些坑,分享出來,節約大家時間: 1、錯誤資訊如下: ImportError: No module named numpy 如果什麼都沒裝,請出門右轉,通過pip安裝n

Python問題解決:ImportError: No module named 'pygal.i18n'

在《Python程式設計:從入門到實踐》書中的一個專案用到pygal.i18n獲取國別碼,然而,現在pygal已經沒有i18n模組,要改用pygal_maps_world.i18n,解決方法如下:

[python程式設計]pycharm顯示 ImportError: No module named xxx

問題: 在執行python程式時,使用mac終端可以正常執行某個python程式,然而在pycharm執行時,顯示 ImportError: No module named pandas 或者是顯示

Python使用libsvm的“ImportError: No module named svmutil”問題

這幾天快被Python的一些細節問題整死了,浪費了不少時間。現在把這些記錄下來,讓遇到同樣問題的朋友少走彎路。 Windows下用Python使用libsvm庫的時候,按照主流的方法(可以點選這裡)安裝配置,沒有問題。但是,一旦不是在命令列而是在Python指

ImportError: No module named MySQLdb問題的解決

port win 執行 sql 。。 https 查看 med 分享 今天在windows上擼python代碼,遇到ImportError: No module named MySQLdb的問題,遂趕緊pip install mysql-python,結果還是不行,查看安裝

yum執行報錯No module named yummain處理

under readme 3.4 rda speed loaded 解決 sans changelog 今天上服務器上執行yum install htop出現 import yummain導入報錯No module named yummain,於是百度查找問題處理方案,

Flask報錯筆記:ImportError: No module namedMySQLdb

flask web 環境描述:Windows10 自己部署一個flask項目 #/usr/bin/python env #coding:utf8 from flask_script import Manager from flask_bootstrap import Bootstrap from fl

解決importerror no module named mysqldb

mysqld script .exe import html 解決 med n-1 htm 在window中 1:在Scripts文件夾下會出現一系列和pip有關的文件,DOS中到Scripts,運行:pip install mysql-python 2:報錯:Mic

ImportError: No module named MySQLdb

eas pos clean ldb module amp make ins named 對於不同的系統和程序有如下的解決方法: easy_install mysql-python (mix os) pip install mysql-python (mix o

python3. 報“ImportError: No module namedMySQLdb'”

需要安裝PyMysql pip install PyMysql    然後在程式中引入 import pymysql pymysql.install_as_MySQLdb() app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://ro

ImportError: No module named 'MySQLdb'

python3.*報“ImportError: No module named ‘MySQLdb’” 報錯: [[email protected] s12bbs]# python3 manage.py –help Traceback (mos

python3.*報“ImportError: No module namedMySQLdb'”

報錯: [[email protected] s12bbs]# python3 manage.py --help Traceback (most recent call last):   File "/usr/lib/python3.4/site-packages/django/db/backend

報錯:ImportError: No module named MySQLdb

對於不同的系統和程式有如下的解決方法: import pymysql pymysql.install_as_MySQLdb() 方法解析: MySQLdb只支援Python2.*,還不支援3.* 可以用PyMySQL代替。安裝方法:pip install P

win7下python2.7 ImportError: No module named 'MySQLdb'錯誤解決方法

環境描述: 在github上面 下載了一個flask專案之後 python manage.py db upgrade Traceback (most recent call last): File "manage.py", line 17, in &l