我有一个使用Django和virtualenv的项目。我刚刚重新安装了Homebrew,但是我的virtualenvs坏了。我正在使用OSX的默认2.7 python。
当我尝试在项目上运行启动脚本时,我得到:
<class 'collections.OrderedDict'>
问题是,当我在环境外部进行点列表时,会得到:
File "[mypath]/.env/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 30, in <module>
'Did you install mysqlclient or MySQL-python?' % e
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen([mypath]/.env/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: [mypath]/.env/lib/python2.7/site-packages/_mysql.so
Reason: image not found.
当我在环境中执行Package Version
-------------------------------------- --------
altgraph 0.10.2
bdist-mpkg 0.5.0
bonjour-py 0.3
macholib 1.5.1
matplotlib 1.3.1
modulegraph 0.10.4
MySQL-python 1.2.5
numpy 1.8.0rc1
pip 10.0.1
py2app 0.7.3
pyobjc-core 2.5.1
pyobjc-framework-Accounts 2.5.1
pyobjc-framework-AddressBook 2.5.1
pyobjc-framework-AppleScriptKit 2.5.1
pyobjc-framework-AppleScriptObjC 2.5.1
pyobjc-framework-Automator 2.5.1
pyobjc-framework-CFNetwork 2.5.1
pyobjc-framework-Cocoa 2.5.1
pyobjc-framework-Collaboration 2.5.1
pyobjc-framework-CoreData 2.5.1
pyobjc-framework-CoreLocation 2.5.1
pyobjc-framework-CoreText 2.5.1
pyobjc-framework-DictionaryServices 2.5.1
pyobjc-framework-EventKit 2.5.1
pyobjc-framework-ExceptionHandling 2.5.1
pyobjc-framework-FSEvents 2.5.1
pyobjc-framework-InputMethodKit 2.5.1
pyobjc-framework-InstallerPlugins 2.5.1
pyobjc-framework-InstantMessage 2.5.1
pyobjc-framework-LatentSemanticMapping 2.5.1
pyobjc-framework-LaunchServices 2.5.1
pyobjc-framework-Message 2.5.1
pyobjc-framework-OpenDirectory 2.5.1
pyobjc-framework-PreferencePanes 2.5.1
pyobjc-framework-PubSub 2.5.1
pyobjc-framework-QTKit 2.5.1
pyobjc-framework-Quartz 2.5.1
pyobjc-framework-ScreenSaver 2.5.1
pyobjc-framework-ScriptingBridge 2.5.1
pyobjc-framework-SearchKit 2.5.1
pyobjc-framework-ServiceManagement 2.5.1
pyobjc-framework-Social 2.5.1
pyobjc-framework-SyncServices 2.5.1
pyobjc-framework-SystemConfiguration 2.5.1
pyobjc-framework-WebKit 2.5.1
pyOpenSSL 0.13.1
pyparsing 2.0.1
python-dateutil 1.5
pytz 2013.7
scipy 0.13.0b1
setuptools 18.5
six 1.4.1
virtualenv 16.0.0
wheel 0.31.1
xattr 0.6.4
zope.interface 4.1.1
时,我得到:
pip list
我不确切知道这个问题是从哪里来的。 Package Version
------------------------ -------
arrow 0.10.0
colormath 3.0.0
configparser 3.5.0
decorator 4.3.0
Django 1.11.8
django-decorator-include 1.3
django-js-reverse 0.8.1
enum34 1.1.6
flake8 3.2.0
Jinja2 2.8
MarkupSafe 1.0
mccabe 0.5.3
MySQL-python 1.2.5
networkx 2.1
numpy 1.14.5
pip 10.0.1
pycodestyle 2.2.0
pyflakes 1.3.0
python-dateutil 2.7.3
pytils 0.3
pytz 2018.4
setuptools 39.2.0
six 1.11.0
spectra 0.0.11
wheel 0.31.1
已安装,如我在列表中所见或在环境内部或外部进行的MySQL-python
:
pip show MySQL-python
有人知道这里发生了什么吗?
谢谢!
答案 0 :(得分:0)
无法加载的不是Python myslq模块,而是无法运行的mysql库(该库不是python模块的一部分-随mysql二进制客户端软件包一起提供)。
如果删除或升级了mysql库,则_mysql.so中对该库的引用可能无效。首先检查您是否安装了二进制mysql客户端库。
要修复参考,您需要删除并重建python绑定模块(pip uninstall
,然后再次pip install
它,这应重建python模块的_mysql.so部分。并指出这一点)。注意,这需要安装C编译器和mysql头文件,因此'pip'可以从C源代码重建_mysql.so。