Come utilizzare Python 3 e Django con Apache?

Il mio obiettivo è di Python 3 con Apache. Il mio problema più grande è in realtà l’acquisizione di mod_python.così. Per la vita di me ho trovato solo un sito dove si può scaricare http://www.modpython.org/) e quello che ho ottenuto è stato un mazzo di costruire e installare i file.

Riesco a trovare nessuna guida che spiega come impostare Python 3 con Apache. Quindi, se qualcuno potesse camminare me attraverso di esso ora, internet, infine, contiene la soluzione!!!

  • L’Apache Attico è stato creato nel novembre del 2008 per fornire processo e soluzioni per rendere chiaro quando un progetto Apache ha raggiunto la fine della vita. mod_python è in Soffitta. Utilizzare mod_wsgi
InformationsquelleAutor Hubro | 2011-05-08



5 Replies
  1. 14

    Django 1.6+ e mod_wsgi 3.4+ sono tenuti ad utilizzare Python 3 con Apache. Per ulteriori dettagli, si veda scot risposta.

    • Non capisco perché questo è con voto positivo. Cita mod_wsgi, è vero, ma è lontano da una soluzione. A mio parere questo dovrebbe essere menzionato come un commento, così posso modificare la mia domanda (Che ora ho questa risposta abbastanza inutile)
    • Non c’è progressione, non può essere fatto. Django non supporta Python 3. Credo che si potrebbe rifiutare di accettare la risposta, perché non è quello che si desidera ascoltare. Ho sentito la gente parlare cercando di porto Django e Python 3 durante l’estate, se si desidera vedere che succede, si potrebbe desiderare di guardare in aiuto.
    • La mia richiesta era di una procedura dettagliata su come utilizzare Python 3 con Apache (e Django). Ho rimosso il Django parte in quanto non supporta Python 3, ma che era solo una piccola parte di un punto.
    • Credo che dalla versione 3 mod_wsgi supporta python3. code.google.com/p/modwsgi/wiki/SupportForPython3X
    • Se vuoi scrivere in Python 3 applicazioni WSGI tenta uwsgi.
    • Questa risposta è completamente fuori di data. Python 3 con Apache mod_wsgi e Django 1.6+ è perfettamente supportato.

  2. 11

    Queste risposte non sono più vere di Django 1.6 – supporta python3. Il mod_wsgi pagina dice che la versione 3.4 supporta python 3. https://code.google.com/p/modwsgi/

    non so se funziona il tutto, a questo punto, anche se (devo restituire e modificare quando riesco a trovare)!

    La risposta è SÌ funziona!

    Ho un AWS EC3 Ubuntu istanza in esecuzione di Python3, Django 1.5.6, Apache2.2 e mod_wsgi 3.4

    Python 3.3.4:

    sudo add-apt-repository ppa:fkrull/deadsnakes
    sudo apt-get install python3.3
    sudo apt-get install python3.3-dev python3.3-doc idle-python3.3

    ppa:fkrull/deadsnakes è un apt repo ha più versioni di python disponibile https://launchpad.net/~fkrull/+archive/deadsnakes

    Poi ho aggiunto pip utilizzando le istruzioni riportate nel pip pagina; http://pip.readthedocs.org/en/latest/installing.html. (ricordate che il vostro python è probabilmente il percorso ‘python3.3’ a questo punto, pianura ‘python’ di punto in python 2.x!)

    Dopo di che, virtualenv. Poi ho virtualenv sarebbe l’installazione di python. Al momento dell’attivazione e l’aggiunta di un ambiente bin nel $PATH ora ho pulito python3.

    Poi, dopo che ho attivato il virtual env, ho fatto ‘pip Django’ e tutti i miei altri pacchetti necessari (che erano pochi). Ho Django versione 1.6.2 (sono stato in via di sviluppo in questo e in esecuzione in python 3.3.3 sul mio Mac nessun problema).

    La maggior parte dei problemi che ho avuto è stata l’installazione di lxml perché richiede libxml2 e libxslt essere installato con apt-get (è un wrapper C), del codice) e mi ci sono voluti un paio di tentativi per capire che non erano già installato (lxml compilazione fallisce).

    Dopo il lancio di ottenere la mia RDS istanza di database funzionante e disponibile (postgresql, attenzione mysql in python3, si otterrà un sacco di python db driver dolore! ma la maggior parte dei miei problemi sono stati causati da me, cercando di capire i problemi di configurazione della sicurezza), è stato relativamente facile:

    sudo apt-get install apache2 apache2-threaded-dev

    Che installa apache – e avete bisogno di dev pacchetti per la prossima bit.

    E a quel punto, ho provato ad utilizzare il pacchetto apt per mod_wsgi, ma ho deciso che la cosa migliore da fare è compilare e installare manualmente, seguendo le istruzioni qui – https://code.google.com/p/modwsgi/wiki/InstallationInstructions

    Non ho avuto problemi con configure, make, o make install. Assicurarsi di compilare il virtualenv attivato ambiente.

    È necessario aggiungere manualmente la configurazione di configurazione di Apache:

    # wsgi module
    LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
    # now configure it
    <Directory /my/app/path>
     <Files wsgi.py>
      Order deny,allow
      Allow from all
     </Files>
    </Directory>
    WSGIScriptAlias / /my/app/path/wsgi.py
    WSGIPythonPath /my/app:/path/to/the/virtual/env/lib/python3.3/site-packages

    E nel modo più vasto possibile, questo è tutto, ora funziona.

  3. 5

    Non è possibile unser python3 con django. Da Django FAQ:
    http://docs.djangoproject.com/en/dev/faq/install/#can-i-use-django-with-python-3

    Posso usare Django con Python 3?

    Non al momento. Python 3.0 ha introdotto un certo numero di indietro-modifiche incompatibili per il linguaggio Python, e anche se questi cambiamenti sono generalmente una buona cosa per Python futuro, sarà un po ‘ prima che la maggior parte di Python software di cattura ed è in grado di funzionare su Python 3.0. Per i più grandi basato su Python software come Django, il passaggio è previsto per almeno un anno o due (in quanto comporta la rimozione del supporto per le vecchie versioni di Python e così deve essere fatto gradualmente).

    Nel frattempo, Python 2.x versioni saranno supportati e fornito con correzioni di bug e aggiornamenti di sicurezza da Python team di sviluppo, in modo di continuare ad utilizzare Python 2.x il rilascio durante la transizione non dovrebbe comportare alcun rischio.

    • Che non era la domanda, allora, perché dare un voto positivo?
    • In realtà è la risposta, la “Django con Apache” una parte della tua domanda.
  4. 3

    1) La prima cosa che si dovrebbe fare con il nostro progetto appena creato file è regolare le impostazioni. Aprire le impostazioni del file con il vostro editor di testo:

    gedit myproject/settings.py

    In fondo al file, aggiungere una riga per configurare questa directory. Django utilizza il STATIC_ROOT impostazione per determinare la directory in cui questi file dovrebbe andare. Useremo un po ‘ di Python dirgli di utilizzare una directory chiamata “statico” nel nostro progetto principale di una directory:

    STATIC_ROOT = os.path.join(BASE_DIR, "static/")

    2) Siamo in grado di raccogliere tutti i contenuti statici nella directory posizione che abbiamo configurato digitando:

    ./manage.py collectstatic

    Si dovrà confermare l’operazione. I file statici sarà messo in una directory chiamata statica all’interno della directory di progetto.

    3)Hai bisogno di mod-wsgi adattatore per configurare Django in Apache
    installare wsgi lib come di seguito.

    sudo apt-get install libapache2-mod-wsgi
    sudo a2enmod wsgi

    4)Alla fine del file /etc/apache2/sites-available/000-default.conf

    WSGIPythonPath /var/www/html/myproject/ 
    WSGIProcessGroup myproject
    WSGIScriptAlias / /var/www/html/myproject/myproject/wsgi.py
    
    
      Alias /static /var/www/html/myproject/static/
    
    <Directory /var/www/html/myproject/static>
        Require all granted
    </Directory>
    
    <Directory /var/www/html/myproject/myproject>
        <Files wsgi.py>
             Order deny,allow
            Require all granted
        </Files>
    </Directory>
    
    Alias /media/ /var/www/html/myproject/media/
    <Directory /var/www/html/myproject/media>
    Require all granted
    </Directory> 
    WSGIDaemonProcess myproject python-path=/var/www/html/myproject/

    5)Riavviare il server apache2:

    sudo service apache2 restart

    6)Ora vai Localhost:

    Bingo! Si sono tutti insieme per Django con apache.

    • Questa è una bella risposta. Abbastanza buono, infatti, che ho pensato che era una prova nel rivedere-coda. Buon lavoro.
  5. 2

    Ho affrontato un problema simile ed ecco come ho risolto:
    Per Installare LAMPADA:

       sudo apt-get install lamp-server^
     // then do more from here:
       //https://help.ubuntu.com/community/ApacheMySQLPHP
     // If you will run python services then : 
           apt-get install python-mysqldb 
    //and for python 3 install: 
       sudo apt-get install python3-pip python-dev build-essential
       pip3.4 install mysqlclient  // for mysql       connection 
       sudo apt-get install build-essential python-dev libmysqlclient-dev
    
       pip3 install virtualenvwrapper
       sudo nano ~/.bash_profile
      //Set location of virtualenvs by pasting this in above: 
       export WORKON_HOME=$HOME/.virtualenvs 
       source /usr/local/bin/virtualenvwrapper.sh
    //Reload startup file:
      source ~/.bash_profile
       mkvirtualenv -p /usr/bin/python3 myprojectenv
       workon myprojectenv
    //then you can install packages you want using pip
    //and copy myproject here

    Per la DISTRIBUZIONE di un Django 1.7 App su Ubuntu 14.04 LTS server con python3 e apache:

       sudo apt-get install libapache2-mod-wsgi-py3
     //then configure your apache virtualhosts( here our project is   //myproject    and environment is myprojectenv):

    Configurare il virtual host in modalità Demone che è raccomandato:

    <VirtualHost *:80>
        ServerName yourdomain.com
        ServerAdmin [email protected].com
    
        DocumentRoot /home/user/.virtualenvs/myprojectenv/public_html
    
    
        <Directory /home/user/.virtualenvs/myprojectenv/myproject/myproject>
    
         <Files wsgi.py>
         Require all granted
        </Files>
        </Directory>
    
        ErrorLog /home/user/.virtualenvs/myprojectenv/logs/error.log
        CustomLog /home/user/.virtualenvs/myprojectenv/logs/access.log  combined
        WSGIScriptAlias /  /home/user/.virtualenvs/myprojectenv/myproject/myproject/wsgi.py
    
        WSGIDaemonProcess myproject python- path=/home/user/.virtualenvs/myprojectenv/prisec:/home/user/.virtualenvs/m yprojectenv/lib/python3.4/site-packages
    
        WSGIProcessGroup myproject
        Alias /static /home/user/.virtualenvs/myprojectenv/public_html/static
    
        <Directory /home/user/.virtualenvs/myprojectenv/public_html/static>
         Require all granted
        </Directory>
         Alias /media
      /home/user/.virtualenvs/myprojectenv/public_html/media
           <Directory        /home/user/.virtualenvs/myprojectenv/public_html/media>
         Require all granted
        </Directory>

    Riavviare Apache .
    la directory di configurazione del virtualhost il file deve esistere in un ambiente virtuale creato.

Lascia un commento