我有生以来第一次尝试在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的目录,它将无法正常工作并在上面显示错误。
这是为什么,我该如何解决?