virtualenv mod_wsgi的问题,ModuleNotFoundError:没有名为“ encodings”的模块

时间:2020-07-06 17:26:44

标签: python mod-wsgi

我有生以来第一次尝试在Windows 10上部署django项目。我已按照此处的步骤操作:https://www.codementor.io/@aswinmurugesh/deploying-a-django-application-in-windows-with-apache-and-mod_wsgi-uhl2xq09e

无论如何,每次我尝试在Apache中运行httpd.exe时,都会出现以下错误

[Tue Jul 07 01:13:02.404342 2020] [mpm_winnt:crit] [pid 9256:tid 784] AH00419: master_main: create child process failed. Exiting.
[Tue Jul 07 01:14:20.666201 2020] [mpm_winnt:notice] [pid 13936:tid 788] AH00455: Apache/2.4.41 (Win32) PHP/7.3.12 mod_wsgi/4.7.1 Python/3.8 configured -- resuming normal operations
[Tue Jul 07 01:14:20.666201 2020] [mpm_winnt:notice] [pid 13936:tid 788] AH00456: Apache Lounge VS16 Server built: Aug  9 2019 16:32:28
[Tue Jul 07 01:14:20.666201 2020] [core:notice] [pid 13936:tid 788] AH00094: Command line: 'httpd.exe -d C:/wamp/bin/apache/apache2.4.41'
[Tue Jul 07 01:14:20.672180 2020] [mpm_winnt:notice] [pid 13936:tid 788] AH00418: Parent: Created child process 16108
Python path configuration:
  PYTHONHOME = 'c:\pythonvenv\djangoproj'
  PYTHONPATH = (not set)
  program name = 'python'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = 'C:\\wamp\\bin\\apache\\apache2.4.41\\bin\\httpd.exe'
  sys.base_prefix = 'c:\\pythonvenv\\djangoproj'
  sys.base_exec_prefix = 'c:\\pythonvenv\\djangoproj'
  sys.executable = 'C:\\wamp\\bin\\apache\\apache2.4.41\\bin\\httpd.exe'
  sys.prefix = 'c:\\pythonvenv\\djangoproj'
  sys.exec_prefix = 'c:\\pythonvenv\\djangoproj'
  sys.path = [
    'C:\\pythonvenv\\djangoproj\\Scripts\\python38.zip',
    'c:\\pythonvenv\\djangoproj\\DLLs',
    'c:\\pythonvenv\\djangoproj\\lib',
    'C:\\wamp\\bin\\apache\\apache2.4.41\\bin',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00002708 (most recent call first):
<no Python frame>
[Tue Jul 07 01:14:22.542101 2020] [mpm_winnt:crit] [pid 13936:tid 788] AH00419: master_main: create child process failed. Exiting.

我已经在Apache的httpd.conf中添加了以下内容。

LoadModule wsgi_module "c:/pythonvenv/djangoproj/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win32.pyd"
WSGIPythonHome "c:/pythonvenv/djangoproj"

这里的主要问题是:如果将 WSGIPythonHome 更改为我的实际python安装路径:C:\Users\MyUser\AppData\Local\Programs\Python\Python38-32\

apache网络服务器能够运行。

但是,如果pythonhome是如上所述的我的virtualenv的目录,它将无法正常工作并在上面显示错误。

这是为什么,我该如何解决?

0 个答案:

没有答案