我有一个Django应用程序,它在我的开发机器上运行得很好。但是当移动到应用服务器上的另一个位置进行托管时,它就不能工作了。误差
django.core.exceptions.ImproperlyConfigured:'django-pyodbc-azure‘不是可用的数据库后端。尝试使用'django.db.backends.XXX',其中XXX是'mysql‘、'oracle’、'postgresql‘、'sqlite3’之一。
当我在命令提示符上运行pip冻结命令时,它甚至没有显示已安装的pyodbc和其他库。它所显示的只有Django 2.1、Django ms-sql和pytz.I,我不能使用pip install(prod server )在应用服务器上安装库。没有联系)。
我将项目从dev移动到prod机器的方法是压缩文件夹,复制它,然后解压缩它。是复制问题吗?我是不是漏掉了什么。
任何帮助都是非常感谢的。
发布于 2020-02-03 19:57:34
如果无法在生产服务器上使用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。
https://stackoverflow.com/questions/60043732
复制相似问题