Python无法在Virtualenv中运行启动脚本

时间:2018-06-26 10:44:10

标签: python virtualenv

我有一个使用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

有人知道这里发生了什么吗?

谢谢!

1 个答案:

答案 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。

相关问题