【发布时间】:2018-03-08 08:56:26
【问题描述】:
我有一个本地 Django 应用程序,我已经开发了一段时间。今天,在停止工作大约一个月后,我又回到了它,但它不会加载。检查 apache 错误日志,我一遍又一遍地看到以下内容:
Current thread 0x00007fffc0be23c0 (most recent call first):
[Tue Sep 26 19:18:09.154141 2017] [core:notice] [pid 1590] AH00052: child pid 1651 exit signal Abort trap (6)
Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
上次我在做这个项目时,我对我的项目代码做了一些更改,但没有触及我的 apache 或 mod_wsgi 配置。
我的 PYTHONPATH 未设置(一个月前一切正常时也未设置。这是我的 mod_wsgi 配置(同样没有更改):
WSGIDaemonProcess secureDash python-path=/Users/user/projects/secureDash_project python-home=/Users/user/.venvs/securedash_py3.6
WSGIProcessGroup secureDash
WSGIScriptAlias / /Users/user/projects/secureDash_project/config/wsgi.py
我花了很多时间在谷歌上搜索这个问题,但似乎没有一个常见的修复方法适用。寻找有关其他地方的指导。
【问题讨论】:
-
您是否删除了它正在使用的 Python 虚拟环境?路径
/Users/user/.venvs/securedash_py3.6存在吗? -
我没有删除它。
workon securedash_py3.6仍然有效,并且从该 venvwhich python返回/Users/user/.venvs/securedash_py3.6/bin/python -
刚刚注意到,在我的 venv 内部,如果我尝试打开 python 控制台,我会收到以下错误:
dyld: Library not loaded: @executable_path/../.Python Referenced from: /Users/user/.venvs/securedash_py3.6/bin/python Reason: image not found Abort trap: 6搜索指向我这个 SO 帖子:stackoverflow.com/questions/23233252/… 所以我我会深入研究,但我有预感这就是问题所在 -
创建 virtualenv 的 Python 安装可能已被删除。确定您是否仍然安装了原始 Python 3.6,销毁并使用它重新创建 Python virtualenv。
-
我已经通过自制软件安装了 python 3.6,并且必须运行
brew cleanup做一些其他的事情,并且 virtualenv 中的符号链接被破坏了
标签: django macos apache python-3.x mod-wsgi