我正在尝试在我的EC2实例上部署我的项目。
当我运行python manage.py validate
时,我收到此错误Error: No module named mysql.base
。
我已经使用yum install MySQL-python
安装了MySQL-python。我可以从Python解释器成功导入MySQLdb。
我似乎无法弄清楚出了什么问题?
我正在使用Django 1.3和Python 2.6以及MySQLdb 1.2.3c1
更新
好的,我发现MySQL-python文件位于以下目录/usr/lib**64**/python2.6/site-packages/
而不是/usr/lib/python2.6/site-packages/
。所以现在我试图在我的wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz/download
目录中通过/usr/lib/python2.6/site-packages/
手动下载MySQL-python文件,现在我在运行python setup.py build
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.6
copying _mysql_exceptions.py -> build/lib.linux-x86_64-2.6
creating build/lib.linux-x86_64-2.6/MySQLdb
copying MySQLdb/__init__.py -> build/lib.linux-x86_64-2.6/MySQLdb
copying MySQLdb/converters.py -> build/lib.linux-x86_64-2.6/MySQLdb
copying MySQLdb/connections.py -> build/lib.linux-x86_64-2.6/MySQLdb
copying MySQLdb/cursors.py -> build/lib.linux-x86_64-2.6/MySQLdb
copying MySQLdb/release.py -> build/lib.linux-x86_64-2.6/MySQLdb
copying MySQLdb/times.py -> build/lib.linux-x86_64-2.6/MySQLdb
creating build/lib.linux-x86_64-2.6/MySQLdb/constants
copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-2.6/MySQLdb/constants
copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-2.6/MySQLdb/constants
copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-2.6/MySQLdb/constants
copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-2.6/MySQLdb/constants
copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-2.6/MySQLdb/constants
copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-2.6/MySQLdb/constants
copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-2.6/MySQLdb/constants
running build_ext
building '_mysql' extension
creating build/temp.linux-x86_64-2.6
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.6 -c _mysql.c -o build/temp.linux-x86_64-2.6/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC -DUNIV_LINUX
unable to execute gcc: No such file or directory
error: command 'gcc' failed with exit status 1
操作系统详细信息
Amazon Linux AMI Base 2011.02.1, EBS boot, 64-bit architecture with Amazon EC2 AMI Tools
The Amazon Linux AMI is based on RHEL 5.x and parts of RHEL6
更新 我在一个32位实例上重新完成了这个项目并且它有效。
答案 0 :(得分:0)
尝试
pip install mysql-python
或
easy_install mysql-python
或下载软件包,然后使用python脚本setup.py
进行安装编辑:
尝试在python shell上进行导入
from mysql.base import *
或只是启动
python manage.py shell
如果你能够这样做,可能是/home/djangotest/sgelections/apache/django.wsgi中出现了问题
一个极端的例子(笑):
import sys
sys.path = []
答案 1 :(得分:0)
您使用的操作系统是什么? 是否默认安装了python 2.6你自己安装了吗?
我问的原因是因为当你使用yum install时,它会为你的操作系统上安装的python版本安装mysql-python客户端,对于CentOS 5.5,它是python2.4.x.
如果你使用python的alt-install选项手动安装了python2.6,那么mysql-python最适合你机器上的默认python版本而不是python2.6。
如果你进入/usr/lib/python2.6/site-packages,你会看到MySQL_python吗?如果没有,那么你需要使用easy_install或pip再次安装它,或者自己下载mysql-python包然后手动安装它。或者您可以添加现在安装到python路径的位置。
如果您在计算机上搜索MySQL_python,您可以看到它现在的安装位置,这可以让您更好地了解正在发生的事情。
答案 2 :(得分:0)
打开您的settings.py
文件。如果您将ENGINE
变为mySQL
,则应更改为:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2',
'mysql', 'sqlite3' or 'oracle'.
...
}