Question

J'ai récemment essayé d'exporter un projet Django sur OpenShift, mais sans succès.Les seules solutions que j'ai trouvées étaient des solutions "préconstruites" (telles que https://github.com/openshift/django-example).

J'ai passé quelques heures à essayer de l'adapter à mon projet mais j'ai toujours eu une erreur interne du serveur.

Alors, comment configurer Django sur Openshift ?

Était-ce utile?

La solution

J'ai finalement compris.La première chose à faire est de démarrer une application openshift et d'éditer le fichier setup.py :

rhc app create -a APPNAME -t python-2.6
cd APPNAME
vim setup.py

Vous devez décommenter "install_requires=['Django>=1.3']"

Ensuite vous pouvez vous engager sur le serveur :

git commit -a -m "Initialization"
git push

Par défaut, il installe Django 1.4 mais je pense que vous pouvez choisir une autre version avec les exigences d'installation correctes dans setup.py.Quoi qu'il en soit, vous devrez exécuter la même version de Django sur votre ordinateur et sur le serveur pour ce qui suit.

Créez votre projet Django :

cd wsgi
django-admin.py startproject PROJECTNAME

Ensuite vous devrez éditer le fichier application, remplacer tout le contenu par :

#!/usr/bin/python
import os, sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'PROJECTNAME.settings'
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi',
    'PROJECTNAME'))

virtenv = os.environ['APPDIR'] + '/virtenv/'
os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python2.6/site-packages')
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')

try:
    execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
    pass

#
# IMPORTANT: Put any additional includes below this line.  If placed above this
# line, it's possible required libraries won't be in your searchable path
# 
from django.core.handlers import wsgi
application = wsgi.WSGIHandler()

Enfin, vous pouvez valider les modifications :

cd ..
git add .
git commit -a -m "Project Creation"
git push

Vous devriez voir la page d'accueil de Django.Vous pouvez désormais modifier les paramètres et importer vos applications Django sans contenu indésirable

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top