Это будет второй раз в моей жизни, рассказывая почти о том же. Разница между этим временем и прошлым временем составляет около 9 месяцев, много сложного обучения и тот факт, что за последние 9 месяцев у меня никогда не было этой проблемы, и мы часто использовали MySQLdb безупречно в течение всего периода времени. Я признаю, что подобный вопрос был задан много раз. Я прочитал ответы и выполнил предложенные исправления. На данный момент я все еще не смог достичь успешного завершения, поэтому я отправляю свой вопрос.Неправильно Конфигурировано: Ошибка при загрузке модуля MySQLdb: нет модуля с именем MySQLdb - Django 1.4 и Google App Engine
Просто для описания моей среды: я запускаю приложение Django в Google App Engine локально с помощью Google App Engine Launcher. Я использую Mac OS X El Capitan.
Когда эти приложения развернуты в Google App Engine, они работают безупречно, как и предполагалось. Однако при запуске локально я последовательно получаю ImportError при попытке запустить приложение.
Позволь мне перечислить некоторые из вещей, которые я проверяемые и/или пытался решить эту проблему:
-установлен MySQL
-установлена MySQL-питон
-Добавлена MySQLdb в «Библиотеке» раздел в app.yaml
-Проверен PYTHONPATH во время выполнения, чтобы подтвердить, что соответствующие каталоги добавлены в путь.
-Add пути перед импортом как фиктивный чек
-Обновленного Google App Engine SDK
Я сделал даже больше, но едва вспомнить их сейчас. При проверке пути во время выполнения, я могу ясно видеть следующий путь к директории google_appengine SDK, где MySQLdb проживает:
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/MySQLdb-1.2.5
Разве это не то, что я должен увидеть? Должен ли я указывать на что-то еще? Я также указал на другие каталоги, где у меня установлены другие пакеты python (например, /Library/Python/2.7/site-packages/). Что мне не хватает? Я знаю, что делаю что-то немое, и я в порядке. Я просто хочу прекратить тратить свое время, пытаясь устранить такую глупую проблему. Я использую MySQL каждый день в других проектах и никогда не испытываю таких проблем. Я действительно не знаю, что это на данный момент.
Сообщите мне, если я могу добавить больше полезной информации, и я с радостью обяжусь. Я приведу несколько моих файлов ниже в надежде, что они могут быть полезными.
app.yaml:
application: *omitted*
version: 1
runtime: python27
api_version: 1
threadsafe: true
env_variables:
DJANGO_SETTINGS_MODULE: 'Freya.settings'
handlers:
- url: /favicon\.ico
static_files: static/images/favicon.ico
upload: static/images/favicon\.ico
- url: /static
static_dir: static
application_readable: true
- url: /.*
script: main.app
libraries:
- name: django
version: "latest"
- name: MySQLdb
version: "latest"
main.py:
from google.appengine.ext.webapp import util
import django.dispatch.dispatcher
import django.core.handlers.wsgi
from django.conf import settings
import django.core.signals
import django.db
import os
settings._target = None
app = django.core.handlers.wsgi.WSGIHandler()
def main():
util.run_wsgi_app(app)
if __name__ == '__main__':
main()
settings.py (бит базы данных):
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '*omitted*',
'NAME': '*omitted*',
'USER': '*omitted*',
}
Любая помощь очень ценится.
Вот пример того, что я пробовал в настройках.py:
import imp
import sys
import os
print('Checking')
try:
imp.find_module('MySQLdb')
found = True
except ImportError:
found = False
print('Found: ' + str(found))
import MySQLdb
print('Import success')
Выполнение этого, когда я ищу «Найдено: false» Я не нахожу его. Я нахожу «Found: true», который должен действительно сказать мне, что нет никакой проблемы с поиском модуля MySQLdb. Однако, когда он достигает линии import MySQLdb
, программа вылетает с ImportError: No module named MySQLdb
и линия print('Import success')
никогда не была достигнута
Что происходит?
Edit: Я собираюсь попробовать сделать это теперь на моем разделе Linux, хотя я не думаю, что что-то я там поможет мне понять, что делать обратно на Mac OS