Django Приложение не работает при перемещении на сервер приложений - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть приложение Django, которое отлично работает на моей машине для разработки. Но при перемещении в другое место на сервере приложений для хостинга это не работает. Ошибка

django .core.exceptions.ImproperlyConfigured: 'django -pyodb c - azure' не является доступной серверной частью базы данных. Попробуйте использовать 'django .db.backends.XXX', где XXX является одним из: 'mysql', 'oracle', 'postgresql', 'sqlite3'

Когда я запускаю команду pip freeze в командной строке, она даже не показывает pyodb c и другие установленные библиотеки. Все, что он показывает, это Django 2.1, Django ms- sql и pytz. Я не могу установить библиотеки на сервер приложений с помощью pip install (prod server. Нет соединения).

Способ, которым я двигаюсь Мой проект от dev до prod - это сжатие папки, ее копирование, а затем распаковка. Копирование является проблемой? Я что-то здесь упускаю.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 03 февраля 2020

Если вы не можете 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.

...