Installation mod_wsgi für Python ist3 auf Ubuntu
Könnte mir jemand eine klare Anleitung für die Installation von mod_wsgi auf Ubuntu für Python 3?
Habe ich bekommen, Fläschchen & mod_wsgi erfolgreich mit Python ist3, und für einen kurzen moment fühlte sich glücklich.
...bis ich sah das Apache-log und erkannte, dass ich habe laufen in dieses problem: https://askubuntu.com/questions/569550/assertionerror-using-apache2-and-libapache2-mod-wsgi-py3-on-ubuntu-14-04-python
apt-get
ist die Installation einer out-of-date-version von libapache2-mod-wsgi-py3
dadurch verursacht wird, dass Fehler im Apache-log. (Sollte ich das melden und wenn ja wo?)
In den link, der Ingenieur ist mit pip
installieren Sie eine mehr up-to-date-version.
Interessanterweise scheint er zu sein, es zu installieren in einer virtuellen Python ist3 Umgebung. (Wäre das anders sein, als das system pip3
?)
Er auch verwendet pip3 install mod_wsgi
, aber pip3 search mod_wsgi
gibt:
(EDIT: Nein, ist er nicht, er nutzt pip nicht pip3. Kann das Stimmen? Hat er nun seine Adern gekreuzt? Nicht pip zu gehen, die Tatsache zu ignorieren, dass er in seinem py3venv und nutzen Sie ganz einfach das system ist py2 installation? Aber sowieso, dass sich nicht auflösen, Verwirrung...)
mod_wsgi-metrics - Metrics package for Apache/mod_wsgi.
cykooz.recipe.pastewsgi - Buildout recipe to create paste.deploy entry points for mod_wsgi or uwsgi
mod_wsgi-httpd - Installer for Apache httpd web server.
apachemiddleware - Useful Python middleware for use with mod_wsgi deployments
tranchitella.recipe.wsgi - Buildout recipe to create paste.deploy entry points for mod_wsgi
mod_wsgi - Installer for Apache/mod_wsgi.
Also, was ist mod_wsgi-httpd
? Und ist es sicher das nicht die, die ich will?
Schließlich kann jemand einen link zu der Installation mod_wsgi von der Quelle?
EDIT: ich verstehe nicht, warum der Ingenieur ist mit pip install mod_wsgi
eher als pip3 ...
. Sicher, dass kann nicht richtig sein? Aber wenn ich tun, verwenden Sie pip3, bekomme ich:
pi@PiDroplet:~$ cd web/piFlask
pi@PiDroplet:~/web/piFlask$ source ./venv3/bin/activate
(venv3)
pi@PiDroplet:~/web/piFlask$ pip3 install mod_wsgi
Downloading/unpacking mod-wsgi
Downloading mod_wsgi-4.4.12.tar.gz (991kB): 991kB downloaded
Running setup.py (path:/home/pi/web/piFlask/venv3/build/mod-wsgi/setup.py) egg_info for package mod-wsgi
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/home/pi/web/piFlask/venv3/build/mod-wsgi/setup.py", line 141, in <module>
'missing Apache httpd server packages.' % APXS)
RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/home/pi/web/piFlask/venv3/build/mod-wsgi/setup.py", line 141, in <module>
'missing Apache httpd server packages.' % APXS)
RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/pi/web/piFlask/venv3/build/mod-wsgi
Storing debug log for failure in /home/pi/.pip/pip.log
Und nun versuche ich pip3 install mod_wsgi-httpd
dauert es etwa fünf Minuten zu kompilieren:
(venv3)
pi@PiDroplet:~/web/piFlask$ pip3 install mod_wsgi-httpd
Downloading/unpacking mod-wsgi-httpd
Downloading mod_wsgi-httpd-2.4.12.5.tar.gz
Running setup.py (path:/home/pi/web/piFlask/venv3/build/mod-wsgi-httpd/setup.py) egg_info for package mod-wsgi-httpd
apr-1.5.2/
apr-1.5.2/config.layout
apr-1.5.2/build.conf
apr-1.5.2/emacs-mode
:
So, jetzt bin ich besorgt, habe ich einen zweiten Apache zu sitzen in meiner Py3 virtualenv.
Jedoch, dass nicht loswerden der Fehler; pip3 install mod_wsgi
nun erfolgreich abgeschlossen.
EDIT: aber inzwischen habe ich es komplett lösen versuchen, seinen Anweisungen Folgen: ich habe keinen /etc/apache2/mods-available/wsgi_express.load
, und wenn er darauf hindeutet, macht es dann für einen start, diese scheint willkürlich, und zweitens der text schlägt er setzen, d.h. LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi-py34.cpython-34m.so
-- diese Datei existiert nicht auf meinem system.
Ich habe /etc/apache2/mods-available/wsgi.load
Ertrinken in der Technologie wieder, kann jemand wirf mir eine Linie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie aktiviert hatten, die Python 3 virtuellen Umgebung und das bin-Verzeichnis war es Weg, dann ist die Wahrscheinlichkeit, dass Sie könnte einfach 'pip' anstatt 'pip3'. Sie laufen sollten", die "pip", um zu überprüfen, ob es aus der virtuellen Umgebung, die Sie erwarten.
Den 'mod_wsgi-httpd-Paket ist speziell für die Installation eine eindeutige Instanz von Apache selbst zu bekommen, um die Probleme bei der systemweiten Apache veraltet ist oder fehlt Entwicklungs-header-Dateien, oder sonst können Sie nicht ändern Sie die systemweite Konfiguration. Es ist in der Regel mehr Relevanz, wenn Sie nicht über root-Zugriff auf fix-system große Probleme und sind nur daran interessiert, läuft auf einem unprivilegierten port und so nicht benötigen root-Zugriff. Sie müssten auch mit 'mod_wsgi-express' aus dem 'mod_wsgi' Paket 'pip' nach Installation 'mod_wsgi-httpd installiert war, denn das ist der einzige Weg, Sie zu verwenden, 'mod_wsgi-httpd' installierte version von Apache.
So, für 'mod_wsgi-httpd', würden Sie wirklich wollen, es zu ignorieren. Wenn Sie es bereits installiert haben, dann 'pip' - deinstallieren Sie beide und 'mod_wsgi'. Letzteres muss deinstalliert werden, da es gebunden werden, 'mod_wsgi-httpd Apache-version und die 'mod_wsgi.so' wird nicht funktionieren mit dem system breit.
Als separate Benutzer die Schritte im link, Sie sehen richtig, aber ich würde sagen, dass in Schritt 3, es sollte hervorgehoben werden, dass die
LoadModule
undWSGIPythonHome
Zeilen Hinzugefügt werden, was ausgegeben wird, wenn ausgeführtmod_wsgi-express install-module
Befehl. Welche Ausgabe ist individuell zu entsprechen, was Ihre installation sein sollte. Machen Sie also nicht Werten, einfach nur was, dass die Ausgabe des Befehls.Wenn Sie eine
wsgi.load
Datei noch um, führensudo a2dismod wsgi
es loszuwerden, oder Sie andernfalls entfernen Sie Sie manuell. Es ist ein Relikt aus alten system verpackt mod_wsgi.mod_wsgi
undmod_wsgi-httpd
mit pip. Jetzt bin ich stecken. Wenn ichpip install mod_wsgi
bekomme ich die gleiche Fehlermeldung wie in meinem post, wo ich versuchepip3 ...
. das einzige was ich mir vorstellen kann ist, das system zu verwenden pip, um die installation zu tun, in der Hoffnung, dass mein system vorfinden Apache...?sudo apt-get install apache2-dev
komplettiert. Aber jetztpip install mod_wsgi
hängt: gist.github.com/p-i-/b559dc5e43f0776e13fd EDIT: musste nur ein Neustart, jetzt ist es abgeschlossen. Scheint zu funktionieren. Danke!Ich bin die Absicht haben, diese Antwort als "Notiz an sich selbst, dass möglicherweise der Einsatz für andere".
apt-get
zum Zeitpunkt des Schreibens installiert eine veraltete version vonmod_wsgi
.pip
installiert, die ein up-to-date-version. Es tut dies durch das herunterladen der source-code und kompilieren Sie es.Einrichten einer virtualenv Python ist3, und aktivieren Sie es mit
source ./venv3/bin/activate
, stellen Sie sicher, dasswhich pip
bestätigt, es ist jetzt mit dieser Umgebung. Es scheint, dass pip und pip3 sind austauschbar.In meinem Fall meine
./venv3
ist in meinem Kolben-Ordner. Und der einzige Zweckmod_wsgi
ist Apache routehttp://myfoo.org/flask
Anfragen zu meinem Fläschchen app. Es macht also Sinn, zu installierenmod_wsgi
in diesemvenv3
.Jedoch für
pip
erfolgreich zu kompilieren, müssen zunächstsudo apt-get install apache2-dev
bietet die erforderlichen header-Dateien. Dann habe ich ein Neustart erforderlich. Dannpip install mod_wsgi
abgeschlossen ist okay.Dann den Anweisungen Folgen, die aus der original-link:
Dann muss ich erstellen
/etc/apache2/mods-available/wsgi_express.{load,conf}
mit diesen 2 Linien gekennzeichnet.Schließlich aktivieren Sie das Modul und prüfen Sie die Apache-error-log:
sudo apt-get install apache2-dev
dannpip install mod_wsgi
war alles was ich brauchte zu tun; kein Neustart erforderlicha2enmod wsgi
nicht funktionieren sollte, nach Ihren Anweisungen.a2enmod wsgi_express
würde obwohl.sudo apt-get install python3-dev
ist zu