Проблемы с Django + mySQL + virtualenv - PullRequest
       5

Проблемы с Django + mySQL + virtualenv

3 голосов
/ 23 декабря 2011

Попытка изучить Django в Windows становится довольно обескураживающей, потому что каждый раз, когда я пытаюсь сделать следующий шаг, появляются ошибки.

Это мои настройки; Windows 7 Python 2.7 Установил mySQL-python 1.2.3 Установлено virtualenv

Я создал каталог mysite на своем диске. В командной строке я перешел в этот каталог и создал virtualenv (без каких-либо дополнительных команд) под названием «mysite_env». Я активировал окружение и использовал команду «pip install django». Я использовал django-admin.py, чтобы начать новый проект под названием mysite. Так что теперь моя папка "mysite" содержит каталоги "mysite" и "mysite_env".

Вот что происходит, когда я пытаюсь использовать утилиту запуска сервера django.

(mysite_env) c:\mysite\mysite>python manage.py runserver
Validating models...

Unhandled exception in thread started by <bound method Command.inner_run of <dja
ngo.contrib.staticfiles.management.commands.runserver.Command object at 0x000000
0003073908>>
Traceback (most recent call last):
  File "c:\mysite\mysite_env\lib\site-packages\django\core\management\commands\r
unserver.py", line 88, in inner_run
    self.validate(display_num_errors=True)
  File "c:\mysite\mysite_env\lib\site-packages\django\core\management\base.py",
line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "c:\mysite\mysite_env\lib\site-packages\django\core\management\validation
.py", line 28, in get_validation_errors
    from django.db import models, connection
  File "c:\mysite\mysite_env\lib\site-packages\django\db\__init__.py", line 78,
in <module>
    connection = connections[DEFAULT_DB_ALIAS]
  File "c:\mysite\mysite_env\lib\site-packages\django\db\utils.py", line 93, in
__getitem__
    backend = load_backend(db['ENGINE'])
  File "c:\mysite\mysite_env\lib\site-packages\django\db\utils.py", line 33, in
load_backend
    return import_module('.base', backend_name)
  File "c:\mysite\mysite_env\lib\site-packages\django\utils\importlib.py", line
35, in import_module
    __import__(name)
  File "c:\mysite\mysite_env\lib\site-packages\django\db\backends\mysql\base.py"
, line 14, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No mo
dule named MySQLdb

Я искал stackoverflow и Интернет и не могу найти ничего, что работает. Хотелось бы мне заняться каким-то настоящим программированием, а не просто увлекаться всем этим. Похоже, что macs лучше для написания кода на python + django

Ответы [ 6 ]

2 голосов
/ 10 апреля 2013

для windows 7 32 битная установка python 2.7 .. активировать виртуальную среду, а затем в командной строке среды введите

easy_install mysql-python

использование pip у меня не сработало

1 голос
/ 20 ноября 2013

Если вы установили mysql-python на C: / python27 или глобально, просто скопируйте и вставьте следующие файлы из "C: / python / lib / site-packages" в вашу виртуальную среду "/ lib / site-packages"

  • MySQL_python-1.2.4-py2.7.egg-инфо (папка)
  • MySQLdb (папка)
  • _mysql_exceptions.py / .pyc / .pyo
  • _mysql.pyd

** Не нужно копировать файлы MySQL из "C: \ Python27 \ Lib \ site-packages \ django \ db \ backends" или "C: \ Python27 \ Lib \ site-packages \ django \ contrib \ gis \ DB \ движки». Это сработало как шарм

1 голос
/ 11 марта 2012

Расширяя предыдущий ответ, чтобы унаследовать от системных пакетов сайта последнюю версию virtualenv, используйте

virtualenv --system-site-packages test
1 голос
/ 23 декабря 2011

VIrtualenv не унаследовал ваши глобальные библиотеки Python, он больше не по умолчанию.

Вы можете воссоздать virtualenv с помощью пакетов сайта, или вы можете установить модуль Python mysql, который встроен вC, и, следовательно, менее прост, чем большинство установок pip.

Чтобы установить mysqldb под virtualenv, вам нужно иметь возможность скомпилировать модуль mysql, что означает, что вам нужны все общие инструменты компиляции, библиотеки заголовков python иКлиентские MySQL (в Ubuntu / Debian это пакеты, необходимые для сборки, python-dev & libmysqlclient16-dev), на этом этапе pip install MySQL-python должен работать, и оттуда вы сможете использовать mysql в django.

Однако сделать это под окнами сложно.Также вы можете добавить файл в каталог site-packages внутри вашей виртуальной среды (lib / python2.7 / site-packages), который называется что-то вроде mysql.pth (все, что нужно сделать .pth) и содержит одну строку сполный путь к расположению библиотек Python mysql.Это добавит этот каталог к ​​найденному пути, а также должно означать, что django может найти библиотеки.

0 голосов
/ 27 сентября 2013
0 голосов
/ 23 декабря 2011

Похоже, что MySQLdb не установлен или, по крайней мере, не в нужном месте.

Я использовал ответ itsadok на Интеграция MySQL с Python в Windows для моей установки Windows.Вы просто скачиваете установщик и устанавливаете его.Я не знаю, как обстоят дела с virtualenv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...