【问题标题】:Problems with Django+mySQL+virtualenvDjango+mySQL+virtualenv 的问题
【发布时间】:2011-12-22 23:48:07
【问题描述】:

尝试在 Windows 上学习 Django 越来越令人沮丧,因为每次我尝试再迈出一步时都会出错。

这是我的设置; Windows 7的 蟒蛇 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 中编码

【问题讨论】:

    标签: python mysql django virtualenv


    【解决方案1】:

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

    easy_install mysql-python

    使用 pip 对我不起作用

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        扩展先前的答案,使用最新版本的 virtualenv 从系统的站点包继承,使用

        virtualenv --system-site-packages test
        

        【讨论】:

          【解决方案4】:

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

          • MySQL_python-1.2.4-py2.7.egg-info(文件夹)
          • 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\后端”。它就像一个魅力

          【讨论】:

            【解决方案5】:

            看起来 MySQLdb 没有安装,或者至少没有安装在正确的位置。

            我在Integrating MySQL with Python in Windows 上使用itsadok 的回答来安装Windows。您只需下载安装程序并安装它。我不知道它与 virtualenv 的关系如何。

            【讨论】:

            • 这对我不起作用,我在问问题之前已经尝试过了。
            【解决方案6】:

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-12-20
              • 2011-06-17
              • 2011-01-25
              • 1970-01-01
              • 2011-05-30
              相关资源
              最近更新 更多