在Python 3.7中,Django3.1.1,Apache / 2.4.46cPanel得到以下错误:AttributeError:'module'对象没有属性'lru_cache'

问题描述

我是刚在cpanel上部署Django项目的新手。 我的cpanel使用的是python 2.7,但我的项目需要python3.7,因此我按照本教程https://sysally.com/blog/install-python-3-x-whm-cpanel-server/在cpanel上安装了单独的python 3.7版本。在成功安装python 3.7之后,我按照本教程将我的项目服务于cpanel https://docs.cpanel.net/knowledge-base/web-services/how-to-install-a-python-wsgi-application/ 首先,我收到此错误“ ImportError:没有名为django.core.wsgi的模块”,该错误已通过将虚拟环境路径添加到wsgi.py文件解决,现在我的项目wsgi.py文件如下所示

import os,sys

# add the virtualenv site-packages path to the sys.path
sys.path.append('/home/***/public_html/app/unltdenv/lib/python3.7/site-packages')


from django.core.wsgi import get_wsgi_application


os.environ.setdefault('DJANGO_SETTINGS_MODULE','unltdsample.settings')

application = get_wsgi_application()

现在我收到此错误

Traceback (most recent call last):
  File "/opt/cpanel/ea-ruby24/root/usr/share/passenger/helper-scripts/wsgi-loader.py",line 369,in <module>
    app_module = load_app()
  File "/opt/cpanel/ea-ruby24/root/usr/share/passenger/helper-scripts/wsgi-loader.py",line 76,in load_app
    return imp.load_source('passenger_wsgi',startup_file)
  File "/home/umadmin/public_html/app/unltd/passenger_wsgi.py",line 1,in <module>
    from unltdsample.wsgi import application
  File "/home/umadmin/public_html/app/unltd/unltdsample/wsgi.py",line 19,in <module>
    from django.core.wsgi import get_wsgi_application
  File "/home/umadmin/public_html/app/unltdenv/lib/python3.7/site-packages/django/__init__.py",in <module>
    from django.utils.version import get_version
  File "/home/umadmin/public_html/app/unltdenv/lib/python3.7/site-packages/django/utils/version.py",line 71,in <module>
    @functools.lru_cache()
AttributeError: 'module' object has no attribute 'lru_cache'

我进行了搜索,发现问题是wsgi python版本不匹配。通过运行此命令,我可以解决此问题

$ sudo apt-get remove libapache2-mod-python libapache2-mod-wsgi
$ sudo apt-get install libapache2-mod-wsgi-py3

但是当我在终端中运行此命令时,我会得到

"sudo: apt-get: command not found"

当我与yum一起运行时

No Match for argument: libapache2-mod-python
No Match for argument: libapache2-mod-wsgi
No Packages marked for removal

我还尝试在我成功安装的虚拟环境中使用pip install mod-wsgi进行安装,但是错误没有解决。 有谁能帮助我解决这个问题。

系统详细信息:

Python 3.7.0(认值,2020年9月29日,12:40:13) [GCC 4.8.5 20150623(Red Hat 4.8.5-39)]

Django版本:3.1.1

服务器版本:Apache / 2.4.46(cPanel) 建立服务器:2020年9月22日19:31:16

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)