我终于解决了普遍存在的MySQL python/OSX(10.7 64位)崩溃问题,并使用32位MySQL并使用“arch-i386”调用python,使python和MySQL正常工作。Django之外的Py脚本可以正确地查询MySQL等。但是,当我尝试启动Django并调用开发服务器时,我得到了以前在使用64位Python时遇到的错误:
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): no suitable image found. Did find:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so: mach-o, but wrong architecture
在我的.bash_档案里
alias python='arch -i386 python2.7'
export VERSIONER_PYTHON_PREFER_64_BIT=no
export VERSIONER_PYTHON_PREFER_32_BIT=yes
因此,我不明白Django是如何调用python的,以及它为什么不尊重我在.bash_配置文件中的内容。为了让Django调用32位Python,我需要在Django中做什么更改?我做python时的完整回溯管理.pyrunserver'是:
^{pr2}$
VERSIONER_PYTHON_PREFER_32_BIT
环境变量是Apple提供的功能。它只适用于苹果提供的macosx10.6和10.7系统Pythons。从显示的路径来看,您使用的是非系统Python(安装在/Library/Frameworks
中,可能来自python.org网站安装程序)。VERSIONER_PYTHON_PREFER_32_BIT
对它没有影响。您是否尝试过使用类似以下内容启动开发服务器:如果Django在默认为64位的子进程中启动Python解释器,您仍然可能会遇到麻烦。您应该让所有东西都在64位模式下工作,或者坚持使用完整的32位Python和MySQLdb链。通过从第三方分销商(如MacPorts或Homebrew)安装完整的解决方案,您可以为自己省去很多麻烦。在
我有一个similar issue with Snow Leopard,但我所有的工作都使用虚拟环境。如果您也在使用一个(这是使用Django的推荐方法),那么您可以强制虚拟环境使用的python版本。当您创建一个新的虚拟环境时,只需说一些类似于:
相关问题 更多 >
编程相关推荐