29 votes

Nouvelle mise à jour de Django et Python 2.7.* avec virtualenv sur Dreamhost (avec passager)

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

48voto

Trinh Hoang Nhu Points 4358

J'ai actuellement un serveur privé, un compte shell et un peu de chance. Voici donc ce que je fais:

  1. 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
    
  2. 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

  3. Installez easy_install, pip

    cd ~/tmp
    wget http://peak.telecommunity.com/dist/ez_setup.py
    python ez_setup.py
    easy_install pip
    
  4. 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
    
  5. Installer django et tout le reste

     pip install django
     pip install ....
     pip install ....
     pip install ....
    
  6. Créer un projet

     cd $HOME/<site>/
     python $HOME/<site>/env/bin/django-admin.py startproject project
    
  7. Créer passenger_wsgi.py en HOME/<site>/ avec le contenu suivant

     import 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()
  1. Profiter :D

1voto

Max Elahov Points 141

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X