【发布时间】:2018-06-23 15:52:41
【问题描述】:
我有一个用烧瓶编写并为 python3.6 构建的网站。我正在尝试使用 apache 部署我的网站,但遇到了问题。
我使用以下命令安装了 wsgi:
sudo apt-get install libapache2-mod-wsgi-py3
我使用以下方法安装了 python3.6:
sudo apt-get install python3.6.
因为它是一个专门用于这个单一站点的服务器,所以我使用 pip3.6 全局安装了我的 python 模块,而不是在 virtualenv 中,所以我所有需要/安装的模块都位于/usr/local/lib/python3.6/dist-packages/。
我无法弄清楚如何让 apache 使用 python3.6 及其模块。默认情况下,用于服务的 python apache 版本是 3.5,系统默认 python3 版本(我通过在我的 .wsgi 文件中打印 sys.version_info 来验证这一点)。因此,路径中没有我的模块。
环顾四周后,我发现了 apache 配置选项 WSGIPythonHome 和 WSGIPythonPath。我尝试以不同的组合将这些添加到我的apache.conf,但没有任何效果。以下是我尝试过的以及错误所在。
# /etc/apache2/apache.conf
WSGIPythonHome /usr/local/lib/python3.6
# /var/log/apache2/error.log
Current thread 0x00007fc69bac4e00 (most recent call first):
[Sun Jan 14 23:02:04.732187 2018] [core:notice] [pid 7139:tid 140490992012800] AH00051: child pid 7154 exit signal Aborted (6), possible coredump in /etc/apache2
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
# /etc/apache2/apache.conf
WSGIPythonHome /usr/local/lib/python3.6
WSGIPythonPath /usr/local/lib/python3.6
# /var/log/apache2/error.log
Current thread 0x00007fc69bac4e00 (most recent call first):
[Sun Jan 14 23:02:04.732187 2018] [core:notice] [pid 7139:tid 140490992012800] AH00051: child pid 7154 exit signal Aborted (6), possible coredump in /etc/apache2
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
# /etc/apache2/apache.conf
WSGIPythonHome /usr/local/
WSGIPythonPath /usr/local/lib/python3.6
# /var/log/apache2/error.log
Current thread 0x00007fc69bac4e00 (most recent call first):
[Sun Jan 14 23:02:04.732187 2018] [core:notice] [pid 7139:tid 140490992012800] AH00051: child pid 7154 exit signal Aborted (6), possible coredump in /etc/apache2
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
# /etc/apache2/apache.conf
WSGIPythonHome /usr/local/lib/python3.6
WSGIPythonPath /usr/local/lib/python3.6
# /var/log/apache2/error.log
Current thread 0x00007fc69bac4e00 (most recent call first):
[Sun Jan 14 23:02:04.732187 2018] [core:notice] [pid 7139:tid 140490992012800] AH00051: child pid 7154 exit signal Aborted (6), possible coredump in /etc/apache2
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
# /etc/apache2/apache.conf
WSGIPythonHome /usr/local/lib/python3.6
WSGIPythonPath /usr/local/lib/python3.6/dist-packages
# /var/log/apache2/error.log
Current thread 0x00007fc69bac4e00 (most recent call first):
[Sun Jan 14 23:02:04.732187 2018] [core:notice] [pid 7139:tid 140490992012800] AH00051: child pid 7154 exit signal Aborted (6), possible coredump in /etc/apache2
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
# /etc/apache2/apache.conf
WSGIPythonPath /usr/local/lib/python3.6
# /var/log/apache2/error.log
Using python version 3.5
Module flask not found
# /etc/apache2/apache.conf
WSGIPythonPath /usr/local/lib/python3.6/dist-packages
# /var/log/apache2/error.log
Using python version 3.5
Module flask not found
无论如何,我认为我在正确的轨道上,但无法弄清楚我做错了什么。似乎我没有使用正确的PythonHome,但如果不是上述之一,我不确定它应该是什么。
任何帮助将不胜感激。
【问题讨论】:
标签: apache ubuntu mod-wsgi python-3.6