当前位置: 首页 > 面试题库 >

mod_wsgi:ImportError:没有名为“ encodings”的模块

秦安宁
2023-03-14
问题内容

我在CentOS 6.5上使用Apache
2.2.15。我正在尝试使用mod_wsgi设置Django应用。我使用的是虚拟环境,并且mod_wsgi已配置为--with- python=/path/to/virtualenv/bin/python3.4

我已将此添加到我的httpd.conf

WSGIPythonPath /srv/myproject:/path/to/virtualenv/lib/python3.4/site-packages
WSGIPythonHome /path/to/virtualenv
<VirtualHost *:80>
WSGIScriptAlias / /srv/myproject/myproject/wsgi.py
...
</VirtualHost>

在中wsgi.py,我添加了

sys.path.insert(1, "/path/to/virtualenv/lib/python3.4/site-packages")

问题是,当我尝试在浏览器中打开应用程序时,它将无限期加载。这是Apache错误日志:

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
[Mon Jun 30 17:37:28 2014] [notice] child pid 19370 exit signal Aborted (6)
[Mon Jun 30 17:37:28 2014] [notice] child pid 19371 exit signal Aborted (6)
...
[Mon Jun 30 17:37:28 2014] [notice] child pid 19377 exit signal Aborted (6)
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

有趣的是,在Python(2.6)和虚拟环境版本(3.4)的系统安装中,都import encodings可以正常工作!我尝试使用mod_wsgi
CheckingYourInstallation页面中
的示例WSGI脚本来确认Apache正在使用哪个版本的Python,但是我得到了相同的ImportError。

有人对下一步有什么建议吗?我已经搜索过文档,但是我不知道从这里去哪里。


问题答案:

因此,在我的朋友(IE:SysAdmins)的帮助下,昨晚我们知道了这一点。我通过示例学习得最好,所以假设您正在使用mod_wsgi作为Apache组与用户flipperpa一起运行Apache。假设您使用my_project
/ wsgi.py中的wsgi.py托管在/ home / my_project中。

在顶层(ls -l /):

drwxr-xr-x.  47 root root  4096 Jul  9 09:43 home

在主目录(ls -l / home)中:

drwxrwsr-x   7 flipper        apache 4096 Jul 29 10:22 my_project

这是关键。小写的“ s”表示设置了Apache组的setgid位,并设置了执行位。当然,最后的“ x”表示任何人都可以执行。

在树下检查您的权限;这对我们来说成功了。



 类似资料:
  • 问题内容: 我正在Windows 10笔记本电脑上安装Python,而当我尝试运行它时,我得到以下信息: 致命的Python错误:Py_Initialize:无法加载文件系统编解码器ModuleNotFoundError:没有名为“ encodings”的模块当前线程0x0000037c(最近调用优先): 问题答案: 我在Windows 10上遇到了同样的问题。这是我解决的方法: 打开“ 环境变量

  • 嗨,我正在学习线性代数与python的Edx课程。(http://nbviewer.ipython.org/github/ULAFF/notebooks/tree/may-14-2014/). 在第一个框中的“02.4.2.10矩阵向量乘法练习”中,代码为: 生成问题是Edx教授创建的一个模块。但是,我在导入Symphy时出错。 我得到的错误如下: 我下载并安装了症状,如果我导入,它可以在终端(苹

  • 问题内容: 我正在将Django应用程序部署到开发服务器,并且在运行时遇到此错误: 似乎与一起分发。最初,我认为这可能不会安装到virtualenv中的Python,所以我使用以下命令将了(与Python相同的版本)安装到virtualenv 中的Python站点软件包: 编辑:这只发生在virtualenv内部。如果我在virtualenv外部打开控制台,则该控制台存在,但仍然出现相同的错误。

  • 问题内容: 我有这个问题: 我已经安装了PIL,但仍然无法正常工作。我使用OSX。 我正在尝试为Django Simple Captcha安装此模块。 问题答案: 克里斯托弗的建议对我来说非常有效。 详细信息如下:1.卸载现有的Python Imaging Library 下载并解压缩源版本(从此处 http://effbot.org/downloads/Imaging-1.1.6.tar.gz)

  • 问题内容: 卸载旧的Django版本后,我已经更新到最新的Django版本1.0.2。但是现在当我运行django-admin.py时,出现以下错误。我该如何解决? 问题答案: 你必须确保django在你的PYTHONPATH中。 要进行测试,只需在python shell中执行即可。应该没有输出: 如果你安装的Django通过(或与附带的),然后在你检查site-packages,如果文件(.)

  • 问题内容: 我正在使用Python 2.5.4版并安装MySQL 5.0版和Django。Django在Python上运行良好,但在MySQL上运行良好。我在Windows Vista中使用它。 问题答案: 你需要使用以下命令之一。哪一个取决于你拥有和使用的操作系统和软件。 easy_install mysql-python(混合OS) pip安装mysql-python(mix os / pyt