【问题标题】:python manage.py sql is throwing a no suitable image found exceptionpython manage.py sql 抛出找不到合适的图像异常
【发布时间】:2011-12-17 04:53:31
【问题描述】:

我的 macbook pro 在 Intel 处理器上运行 OS X 10.7。我已经安装了 Django 1.3.1、MySQL-python 1.2.3。所有的软件包都安装得很好。当我执行命令“python manage.py sql poll”时,我遇到了以下异常。

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 67, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Python/2.7/site-packages/django/core/management/commands/sql.py", line 4, in <module>
    from django.core.management.sql import sql_create
  File "/Library/Python/2.7/site-packages/django/core/management/sql.py", line 6, in <module>
    from django.db import models
  File "/Library/Python/2.7/site-packages/django/db/__init__.py", line 78, in <module>
    connection = connections[DEFAULT_DB_ALIAS]
  File "/Library/Python/2.7/site-packages/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Library/Python/2.7/site-packages/django/db/utils.py", line 33, in load_backend
    return import_module('.base', backend_name)
  File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Python/2.7/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: dlopen(/Users/khoa/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so, 2): no suitable image found.  Did find:
    /Users/khoa/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so: mach-o, but wrong architecture

【问题讨论】:

标签: python django


【解决方案1】:

您正在使用的 Python(可能是 Apple 提供的 Python 2.7.1)很有可能在 64 位模式下运行,但您安装的 MySQLdb 扩展模块仅是 32 位。或者,可能,反过来。这个 shell 命令的输出应该告诉你扩展模块是为什么架构编译的:

file /Users/khoa/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so

您安装的 MySQLdb 扩展模块和 MySQL 客户端库必须与您正在使用的 Python 实例的架构具有共同的架构。

【讨论】:

  • 看起来他们都是 Mach-O bundle i386。
  • 文件 /Users/khoa/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so /Users/khoa/.python- egg/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so:Mach-O 捆绑 i386 文件 python /Users/khoa/Sites/env/foobar/bin/python:Mach- O 具有 2 个架构 /Users/khoa/Sites/env/foobar/bin/python 的通用二进制文件(适用于架构 x86_64):Mach-O 64 位可执行 x86_64 /Users/khoa/Sites/env/foobar/bin/python(适用于架构 i386): Mach-O 可执行 i386
  • 我不确定还有什么可以尝试的。我按照这里的说明(hackercodex.com/2011/08/30/…)但仍然遇到同样的问题。
  • 您安装了哪个版本的 MySQL 客户端库?尝试在_mysql.so 文件上运行otool -L 列出的依赖项上运行file,看看那里有什么拱门。当您从不同来源挑选组件时,有多种方式可能会遇到问题。在 OS X 上尝试使用 MySQL 安装和运行 Django 时,我的建议是使用 MacPorts 的完整解决方案。尽管张贴者提倡 Homebrew 而不是 MacPorts,但很难击败 MacPorts 单线:sudo port install py27-django py27-mysql。它确实有效。
  • 我按照你的建议做了。 sudo port install py27-django py27-mysql 但我仍然遇到同样的问题。
猜你喜欢
  • 1970-01-01
  • 2010-10-15
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 2020-07-23
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多