【问题标题】:Django Application not working when moved to a app server移动到应用服务器时,Django 应用程序无法正常工作
【发布时间】:2020-02-04 03:57:34
【问题描述】:

我有一个 Django 应用程序,它在我的开发机器上运行良好。但是当移动到应用服务器上的不同位置进行托管时,它不起作用。 错误

django.core.exceptions.ImproperlyConfigured: 'django-pyodbc-azure' 不是可用的数据库后端。 尝试使用 'django.db.backends.XXX',其中 XXX 是以下之一: 'mysql'、'oracle'、'postgresql'、'sqlite3'

当我在命令提示符下运行 pip freeze 命令时,它甚至没有显示 pyodbc 和安装的其他库。它显示的只是 Django 2.1、Django ms-sql 和 pytz。我无法使用 pip install(产品服务器。无连接)在应用服务器上安装库。

我将项目从开发机器转移到生产机器的方式是压缩文件夹,复制它,然后解压缩它。抄袭有问题吗?我在这里错过了什么吗?

感谢任何帮助。

【问题讨论】:

  • 您在开发中使用什么数据库?您想在生产中使用什么数据库?该错误似乎表明您正在开发机器上使用 MSSQL,并带有 pyodbc-azure 后端。如果您还计划在生产中使用 MSSQL(您是否安装并创建了数据库?),那么您还必须在生产中安装 django-pyodbc-azure。或其他一些 MSSQL 后端。如果您不能使用 pip install,则在其他地方托管:您需要完全的 root 访问权限来托管您的 django 应用程序!!!!

标签: django python-3.x hosting django-pyodbc


【解决方案1】:

如果您不能在生产服务器上pip install,您如何将您的 WSGI 运行程序(Apache mod_wsgi、gunicorn 或 uwsgi)指向 venv

您可以做的是将venv 包含在您的 Django 项目中。这是一个很大的假设:您的开发和生产环境是兼容的。 pyodbc 已编译,因此要使二进制文件正常工作,您的环境必须非常相似。如果是这样,这里有一个例子:

cd my_django_project
python -m venv venv
. venv/bin/activate
pip install -r requirements/prod.txt
cd ..
tar -czvf my_django_project.tar.gz my_django_project 

然后将其复制到您的目标服务器,然后:

cd /var/django
tar -xzvf ~/my_django_project.tar.gz

然后调整您的生产 WSGI 运行器,使其 Python 路径指向 /var/django/my_django_project/venv

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多