Проблема с Django syncdb на Amazon EC2 - PullRequest
0 голосов
/ 01 апреля 2011

Я пытаюсь развернуть свой проект на моем экземпляре EC2.Когда я запускаю python manage.py validate, я получаю эту ошибку Error: No module named mysql.base .

Я уже установил MySQL-python, используя yum install MySQL-python.Я могу успешно импортировать MySQLdb из интерпретатора Python.

Не могу понять, что случилось?

Я использую 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/.Итак, теперь я пытаюсь загрузить файл MySQL-python вручную через wget <a href="http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz/download" rel="nofollow">http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz/download</a>, находясь в моем каталоге /usr/lib/python2.6/site-packages/, и теперь я получаю эту ошибку при запуске 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-битном экземпляре, и он работает.

Ответы [ 3 ]

0 голосов
/ 01 апреля 2011

Какую ОС вы используете? Был ли Python 2.6 установлен по умолчанию или вы устанавливали его самостоятельно?

Причина, по которой я спрашиваю, состоит в том, что когда вы используете yum install, он собирается установить клиент mysql-python для версии python, установленной в вашей ОС, для CentOS 5.5 это был python2.4.x.

Если вы установили python2.6 вручную, используя опцию alt-install для python, то mysql-python чаще всего устанавливается для версии python по умолчанию на вашем компьютере, но не на python2.6.

Если вы зайдете в /usr/lib/python2.6/site-packages, вы увидите там MySQL_python? Если нет, то вам нужно будет либо установить его заново с помощью easy_install или pip, либо загрузить пакет mysql-python самостоятельно, а затем установить его вручную. Или вы можете добавить, где когда-либо он установлен сейчас, в ваш путь к Python.

Если вы ищете MySQL_python на своей машине, вы можете увидеть, где он установлен сейчас, и это должно дать вам лучшее понимание того, что происходит.

0 голосов
/ 11 сентября 2012

Откройте файл settings.py.Если вы сделаете ENGINE в mySQL, вы должны изменить его следующим образом:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 
      'mysql', 'sqlite3' or 'oracle'.
  ...
     }
0 голосов
/ 01 апреля 2011

Попробуйте с

pip install mysql-python

или

easy_install mysql-python

или загрузите пакет, а затем установите его с помощью сценария python setup.py

EDIT:

Попробуйте выполнить импорт на оболочке Python

from mysql.base import *

или просто запустить

python manage.py shell

Если вы можете сделать это, возможно, что-то не так в /home/djangotest/sgelections/apache/django.wsgi

крайний пример (смеется):

import sys
sys.path = []
...