添加 djoser 后 Apache2 不显示网站,内部服务器错误 500
Apache2 not showing website after adding djoser, Internal Server Error 500
将 djoser 添加到我的 Django 应用程序并在本地主机上进行所有测试它工作正常。然而在重新启动 apache2 之后(应用程序已经添加到 apache 并且工作正常),它给出了内部服务器错误 500。
查看了正在发生的事情并遵循了 说明以获取实际错误。
产生了以下
Traceback (most recent call last):
File "<path_to_app>/wsgi.py", line 21, in <module>
application = get_wsgi_application()
File "<path_to_app>/env/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "<path_to_app>/env/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "<path_to_app>/env/lib/python3.6/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "<path_to_app>/env/lib/python3.6/site-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'djoser'
mod_wsgi (pid=7989): Target WSGI script '<path_to_app>/wsgi.py' does not contain WSGI application 'application'.
mod_wsgi (pid=8126): Target WSGI script '<path_to_app>/wsgi.py' does not contain WSGI application 'application'.
我不知道为什么它说没有名为 'djoser' 的模块,python/pip 告诉我它已安装并且正在本地主机上工作。
我在
之后看到了类似的错误
$ sudo apachectl graceful
但他们在一个完整的
之后就离开了
$ sudo apachectl restart
这可能值得一试。
编辑以包含来自评论的实际解决方案:
此外,请检查您的 python 路径。乔瑟尔在哪里?我曾经遇到过将模块安装到 dist-packages 与 site-packages 的问题。对于虚拟环境或不同的用户,当您 运行 开发服务器时,Apache 可能会使用与您正在使用的路径不同的 python 路径。
将 djoser 添加到我的 Django 应用程序并在本地主机上进行所有测试它工作正常。然而在重新启动 apache2 之后(应用程序已经添加到 apache 并且工作正常),它给出了内部服务器错误 500。
查看了正在发生的事情并遵循了
产生了以下
Traceback (most recent call last):
File "<path_to_app>/wsgi.py", line 21, in <module>
application = get_wsgi_application()
File "<path_to_app>/env/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "<path_to_app>/env/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "<path_to_app>/env/lib/python3.6/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "<path_to_app>/env/lib/python3.6/site-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'djoser'
mod_wsgi (pid=7989): Target WSGI script '<path_to_app>/wsgi.py' does not contain WSGI application 'application'.
mod_wsgi (pid=8126): Target WSGI script '<path_to_app>/wsgi.py' does not contain WSGI application 'application'.
我不知道为什么它说没有名为 'djoser' 的模块,python/pip 告诉我它已安装并且正在本地主机上工作。
我在
之后看到了类似的错误$ sudo apachectl graceful
但他们在一个完整的
之后就离开了$ sudo apachectl restart
这可能值得一试。
编辑以包含来自评论的实际解决方案:
此外,请检查您的 python 路径。乔瑟尔在哪里?我曾经遇到过将模块安装到 dist-packages 与 site-packages 的问题。对于虚拟环境或不同的用户,当您 运行 开发服务器时,Apache 可能会使用与您正在使用的路径不同的 python 路径。