Django + mySQL + virtualenv的问题

时间:2011-12-22 23:48:07

标签: python mysql django virtualenv

尝试在Windows上学习Django变得非常令人沮丧,因为每次我尝试采取另一步都有错误。

这是我的设置; Windows 7的 Python 2.7 安装了mySQL-python 1.2.3 已安装virtualenv

我在驱动器上创建了一个mysite目录。在命令提示符下,我更改了该目录,并创建了一个名为“mysite_env”的virtualenv(没有任何额外的命令)。我激活了环境并使用了命令“pip install django”。我使用django-admin.py启动一个名为mysite的新项目。所以现在我的文件夹“mysite”包含“mysite”和“mysite_env”目录。

当我尝试使用django runserver实用程序时会发生这种情况。

(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 个答案:

答案 0 :(得分:2)

for windows 7 32位安装python 2.7 .. 激活虚拟环境,然后在环境提示符下键入

easy_install mysql-python

使用pip对我不起作用

答案 1 :(得分:1)

VIrtualenv没有继承你的全局Python库,它不再是默认的。

您可以使用站点包重新创建virtualenv,或者您可以安装使用C构建的mysql python模块,因此不如大多数pip安装简单。

要在virtualenv下安装mysqldb,你需要能够编译mysql模块,这意味着你需要所有通用的compliation工具,python头库和mysql客户端(在ubuntu / debian下这些是包构建 - 必需的,python-dev&amp; libmysqlclient16-dev),此时pip install MySQL-python应该可以工作,从那里你应该可以在django中使用mysql。

然而,在Windows下执行此操作非常复杂。您还可以做的一件事是将文件添加到虚拟环境(lib / python2.7 / site-packages)中的site-packages目录中,该目录名为mysql.pth(anything.pth将执行),其中包含一行mysql python库位置的完整路径。这会将该目录添加到搜索到的路径中,也应该意味着django可以找到这些库。

答案 2 :(得分:1)

扩展之前的答案,使用最新版本的virtualenv继承系统的网站包,请使用

virtualenv --system-site-packages test

答案 3 :(得分:1)

如果您在C:/ python27或全局安装了mysql-python,那么只需将以下文件从“C:/ python / lib / site-packages”复制粘贴到您的虚拟环境“/ lib / site-packages”

  • MySQL_python-1,2,4- py2.7.egg-信息(文件夹)
  • MySQLdb的(文件夹)
  • _mysql_exceptions.py/.pyc/.pyo
  • _mysql.pyd

**不需要复制“C:\ Python27 \ Lib \ site-packages \ django \ db \ backends”或“C:\ Python27 \ Lib \ site-packages \ django \ contrib \ gis”中的mysql文件\ DB \后端”。它就像一个魅力

答案 4 :(得分:0)

看起来MySQLdb没有安装或者至少没有安装在正确的地方。

我在Integrating MySQL with Python in Windows上使用了itsadok的答案来安装我的Windows。您只需下载安装程序并进行安装即可。我不知道它是如何与virtualenv。

答案 5 :(得分:0)