【问题标题】:Python with MySQL on Windows: installation errors在 Windows 上使用 MySQL 的 Python:安装错误
【发布时间】:2009-12-26 21:39:32
【问题描述】:

我尝试在我的 Django 项目文件夹中运行以下命令:

$ python manage.py dbshell

它显示了这个错误:

$python manage.py dbshell
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "C:\Python25\lib\site-packages\django\core\management\__init__.py", line
362, in execute_manager
    utility.execute()
  File "C:\Python25\lib\site-packages\django\core\management\__init__.py", line
303, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python25\lib\site-packages\django\core\management\base.py", line 195,
 in run_from_argv
    self.execute(*args, **options.__dict__)
  File "C:\Python25\lib\site-packages\django\core\management\base.py", line 222,
 in execute
    output = self.handle(*args, **options)
  File "C:\Python25\lib\site-packages\django\core\management\base.py", line 351,
 in handle
    return self.handle_noargs(**options)
  File "C:\Python25\lib\site-packages\django\core\management\commands\dbshell.py
", line 9, in handle_noargs
    from django.db import connection
  File "C:\Python25\lib\site-packages\django\db\__init__.py", line 41, in <modul
e>
    backend = load_backend(settings.DATABASE_ENGINE)
  File "C:\Python25\lib\site-packages\django\db\__init__.py", line 17, in load_b
ackend
    return import_module('.base', 'django.db.backends.%s' % backend_name)
  File "C:\Python25\Lib\site-packages\django\utils\importlib.py", line 35, in im
port_module
    __import__(name)
  File "C:\Python25\lib\site-packages\django\db\backends\mysql\base.py", line 13
, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No mo
dule named MySQLdb

第一个问题是,为什么 Python 不简单地包含这个 MySQLdb 模块?

好的,没关系,尝试搜索解决此消息。

我查看了 stackoverflow.com 以安装此模块,但没有得到很好的结果。

在以下位置下载此模块:http://sourceforge.net/projects/mysql-python/

在我的 Windows Vista 系统上安装这个模块。 解压包后,我运行cmd提示继续安装:

$ python setup.py install

它再次向我展示了另一条消息:

D:\SOFTWARE\PROGRAMMING\MySQL-python-1.2.3c1>python setup.py install
Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    from setuptools import setup, Extension
ImportError: No module named setuptools

玩弄这个错误信息,我知道包中有ez_setup.py

$python ez_setup.py

看来一切正常:

D:\SOFTWARE\PROGRAMMING\MySQL-python-1.2.3c1>python ez_setup.py
Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py
2.5.egg
Processing setuptools-0.6c9-py2.5.egg
Copying setuptools-0.6c9-py2.5.egg to c:\python25\lib\site-packages
Adding setuptools 0.6c9 to easy-install.pth file
Installing easy_install-script.py script to C:\Python25\Scripts
Installing easy_install.exe script to C:\Python25\Scripts
Installing easy_install-2.5-script.py script to C:\Python25\Scripts
Installing easy_install-2.5.exe script to C:\Python25\Scripts

Installed c:\python25\lib\site-packages\setuptools-0.6c9-py2.5.egg
Processing dependencies for setuptools==0.6c9
Finished processing dependencies for setuptools==0.6c9

现在回到setup.py再次安装:

$python setup.py install

它又给了我另一个错误信息:

D:\SOFTWARE\PROGRAMMING\MySQL-python-1.2.3c1>python setup.py install
running install
running bdist_egg
....
copying MySQLdb\constants\CLIENT.py -> build\lib.win32-2.5\MySQLdb\constants
running build_ext
error: Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.

我该如何解决这个问题?

【问题讨论】:

    标签: python mysql


    【解决方案1】:

    你试过看这里吗:http://sourceforge.net/projects/mysql-python/files/

    那个是MySQLdb项目的下载区,和django没有关系,所以你的问题是不对的——django不难切换数据库后端,你改一行就行了。当然,您的 python 安装应该首先支持该数据库,因此通过从我上面给出的链接下载适用于 Windows 的二进制包(选择正确的版本以匹配您的 python 版本),您可以避免编译源版本的所有麻烦。

    您很可能需要MySQL-python-1.2.2.win32-py2.5.exeMySQL-python-1.2.2.win32-py2.4.exe

    【讨论】:

    • 是的,OP 绝对应该下载预构建的 Windows 二进制文件,而不是尝试自己编译。
    • 哎呀,你是对的,我不小心下载了源码包:-s
    【解决方案2】:

    呃,这不是 Django,这是你下载一些未指定的 Python 环境并期望它神奇地按照你想要的方式完成所有事情。找到一个很好的教程并按照说明进行操作。

    顺便说一句,这是一个非常有帮助的论坛,但不提供具体细节然后带着态度提出非问题并不是让人们感到有帮助的好方法。

    【讨论】:

    • 谢谢彼得,我误解了这个概念。我已经编辑了问题。
    • 谢谢。您肯定想使用二进制版本,而不是源代码。我不认为 Python 曾经附带 MySQL 库,尽管 SQLite3 现在是“包含的电池”的一部分。 PHP 曾经包含 MySQL,但大约一年前就停止了——我认为这与某种许可问题有关。现在 MySQL 归甲骨文所有,它的未来有些阴云密布。由于 Oracle 收购了 Sun(最近收购了 MySQL),我已经有一个客户专门询问过在他们的下一个项目中使用 Postgres。
    • 哎呀,你非常关注这个行业:-s 谢谢你的信息
    【解决方案3】:

    我曾经在同一台计算机上运行 Python 和 MySQL 时遇到同样的问题。就像上面说的家伙/女孩一样,Python 没有内置对 MySQL 的支持,所以你需要下载连接器。

    @kibitzer 上面给出的链接很可能无法在 Windows 上成功运行,所以转到here to download 一个适用于 Windows 的连接器的副本。它带有安装程序,无需手动运行setup.py 脚本。

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 2014-05-14
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多