Dreamhost est un hôte idéal pour les petits projets. Et c'est aussi Django d'hébergement convivial. Tout bon, sauf python et Django version est un peu hors de date. Eh bien, c'est une journée entière de travail pour comprendre comment la mise à jour de Python 2.7.3, Django 1.4 sur dreamhost et j'ai vraiment envie de partager avec celui qui à le trouver
Réponses
Trop de publicités?J'ai actuellement un serveur privé, un compte shell et un peu de chance. Voici donc ce que je fais:
-
SSH à votre hôte pour la mise à niveau de python
cd ~ mkdir tmp cd tmp wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz tar zxvf Python-2.7.3.tgz cd Python-2.7.3 ./configure --enable-shared --prefix=$HOME/Python27 make make install
-
Configurer le système pour utiliser notre nouvelle Python. Ouvrez ~/.bashrc et ajoutez la ligne suivante
export PATH="$HOME/Python27/bin:$PATH" export LD_LIBRARY_PATH=$HOME/Python27/lib #save it and run source ~/.bashrc
vous pouvez maintenant vérifier votre version de python avec
which python
-
Installez
easy_install
,pip
cd ~/tmp wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py easy_install pip
-
Installez
virtualenv
pip install virtualenv virtualenv $HOME/<site>/env #Switch to virtualenv source $HOME/<site>/env/bin/activate
vous pouvez également ajouter env chemin de
bashrc
export PATH="$HOME/<site>/env/bin/:$PATH" source ~/.bashrc
-
Installer django et tout le reste
pip install django pip install .... pip install .... pip install ....
-
Créer un projet
cd $HOME/<site>/ python $HOME/<site>/env/bin/django-admin.py startproject project
-
Créer
passenger_wsgi.py
enHOME/<site>/
avec le contenu suivantimport sys, os cwd = os.getcwd() sys.path.append(cwd) sys.path.append(cwd + '/project') #You must add your project here or 500 #Switch to new python #You may try to replace $HOME with your actual path if sys.version < "2.7.3": os.execl("$HOME/<site>/env/bin/python", "python2.7.3", *sys.argv) sys.path.insert(0,'$HOME/<site>/env/bin') sys.path.insert(0,'$HOME/<site>/env/lib/python2.7/site-packages/django') sys.path.insert(0,'$HOME/<site>/env/lib/python2.7/site-packages') os.environ['DJANGO_SETTINGS_MODULE'] = "project.settings" import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
Si vous utilisez django 1.7, remplacer les deux dernières ligne avec
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
- Profiter :D
Actuellement Dreamhost mise à jour des serveurs d'Ubuntu 12.04, et j'ai une erreur:
Import Error: <path-to-python>/_io.so undefined symbol: PyUnicodeUCS2_Decode
après la compilation personnalisée python et en cours d'exécution "python ez_setup.py"
La solution a été de compiler python avec l'option --enable-unicode=ucs4 à l'étape 1
./configure --enable-shared --prefix=$HOME/Python27 --enable-unicode=ucs4