0

我有一个 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(产品服务器。无连接)在应用服务器上安装库。

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

任何帮助表示赞赏。

4

1 回答 1

0

如果你不能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.

于 2020-02-03T19:57:34.390 回答