Installieren mod_wsgi auf Ubuntu mit Python-3.6, Apache 2.4, und Django 1.11
Wie bekomme ich mod_wsgi für Apache 2 kompiliert wurde für Python 3.6.1?
(oder alle künftigen Python-version)
Bin ich mit einem Python-3.6.1 virtuelle Umgebung mit Django 1.11 und Alles arbeitet nach dem Apache-error-log, außer, dass mod_wsgi für den Apache 2.4 kompiliert wurde Python/3.5.1+ und ist mit Python/3.5.2 so meine Python 3.6.1 code ist fehlerhaft, denn ich bin mit neuen features, die nicht in 3.5.2
Alle anderen Konfigurationen und installiert damit beschäftigt, mein system scheint in Ordnung zu sein (im daemon-Modus Läuft), obwohl mod_wsgi nicht zu sein scheinen mit meiner Python 3.6.1 virtuelle Umgebung (obwohl es versucht, es zu benutzen für Django nach dem Fehler-log)...
Ich verwendet: sudo apt-get install libapache2-mod-wsgi-py3
zu installieren mod_wsgi für Apache 2.4
Ich verwendet: ./configure --with-python=/usr/local/bin/python3.6
und make
mit make install
zu installieren mod_wsgi für Python 3.6
Ich muss etwas falsch - bitte korrigieren Sie mich!
Hier ist mein Apache-Error-Log (gereinigt ein bisschen) - und ja, ich weiß, es scheitert an der f"," string " Zeile (python 3.6 Funktion nicht in 3.5)
[wsgi:warn] mod_wsgi: Compiled for Python/3.5.1+.
[wsgi:warn] mod_wsgi: Runtime using Python/3.5.2.
[wsgi:warn] AH00489: Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/3.5.2 configured -- resuming normal operations
[wsgi:warn] AH00094: Command line: '/usr/sbin/apache2'
[wsgi:error] mod_wsgi (pid=12963): Target WSGI script '/home/jamin/www/dev.tir.com/tir/tir/wsgi.py' cannot be loaded as Python module.
[wsgi:error] mod_wsgi (pid=12963): Exception occurred processing WSGI script '/home/jamin/www/dev.tir.com/tir/tir/wsgi.py'.
[wsgi:error] Traceback (most recent call last):
[wsgi:error] File "/home/jamin/www/dev.tir.com/tir/tir/wsgi.py", line 21, in <module>
[wsgi:error] application = get_wsgi_application()
[wsgi:error] File "/home/jamin/www/dev.tir.com/py361ve/lib/python3.6/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
[wsgi:error] django.setup(set_prefix=False)
[wsgi:error] File "/home/jamin/www/dev.tir.com/py361ve/lib/python3.6/site-packages/django/__init__.py", line 27, in setup
[wsgi:error] apps.populate(settings.INSTALLED_APPS)
[wsgi:error] File "/home/jamin/www/dev.tir.com/py361ve/lib/python3.6/site-packages/django/apps/registry.py", line 116, in populate
[wsgi:error] app_config.ready()
[wsgi:error] File "/home/jamin/www/dev.tir.com/py361ve/lib/python3.6/site-packages/django/contrib/admin/apps.py", line 23, in ready
[wsgi:error] self.module.autodiscover()
[wsgi:error] File "/home/jamin/www/dev.tir.com/py361ve/lib/python3.6/site-packages/django/contrib/admin/__init__.py", line 26, in autodiscover
[wsgi:error] autodiscover_modules('admin', register_to=site)
[wsgi:error] File "/home/jamin/www/dev.tir.com/py361ve/lib/python3.6/site-packages/django/utils/module_loading.py", line 50, in autodiscover_modules
[wsgi:error] import_module('%s.%s' % (app_config.name, module_to_search))
[wsgi:error] File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
[wsgi:error] return _bootstrap._gcd_import(name[level:], package, level)
[wsgi:error] File "<frozen importlib._bootstrap>", line 986, in _gcd_import
[wsgi:error] File "<frozen importlib._bootstrap>", line 969, in _find_and_load
[wsgi:error] File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
[wsgi:error] File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
[wsgi:error] File "<frozen importlib._bootstrap_external>", line 665, in exec_module
[wsgi:error] File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
[wsgi:error] File "/home/jamin/www/dev.tir.com/tir/company/admin.py", line 13, in <module>
[wsgi:error] from .forms import AdminInteractionForm
[wsgi:error] File "/home/jamin/www/dev.tir.com/tir/company/forms.py", line 87
[wsgi:error] resp = f"Hi {user.first_name}, you'll need to login to send any more suggestions. \\
[wsgi:error] \\n\\nFirst Time? Check your email/spam for login instructions from us."
[wsgi:error]
[wsgi:error] ^
[wsgi:error] SyntaxError: invalid syntax
*auch tir.com ist die Kurzform für meine aktuelle site - habe ich nichts mit zu tun, dass die domain
- wo hast du den python-3.5 .so?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun die folgende.
Deinstallieren Sie Ihr system mod_wsgi-Paket.
Installieren mod_wsgi mit
pip
, vorzugsweise in einer virtuellen Python-Umgebung. Sicherpip
ist für die version von Python, die Sie verwenden möchten.Anzeige der config hinzufügen, um Apache-Konfigurations-Datei um diese zu laden mod_wsgi mit:
Den Ausgang des oben genannten Befehl an display-config und fügen Sie den Apache-Konfiguration.
Konfiguration hinzufügen, um Apache zu laden hello world WSGI-Anwendung zu testen, es funktioniert.
Details für
pip
- Basis zu installieren, in:pip install mod_wsgi
gab mir dieser Fehler (es gibt noch mehr, wenn Sie es brauchen)/usr/bin/ld: /usr/local/lib/libpython3.6m.a(abstract.o): relocation R_X86_64_32S against `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libpython3.6m.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status error: command 'gcc' failed with exit status 1
--enable-shared
und werde berichten.$ pip install mod-wsgi Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-install-kb2_eaz9/mod-wsgi/setup.py", line 168, 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 th e documentation for this package and install any missing Apache httpd server packages.
apxs
nicht gefunden werden. Die Meldung selbst sagt, so viel.missing Apache httpd server packages
Fehler, die Sie möglicherweise ausführen müssen, umsudo apt-get install apache2-dev
Wenn ich die @Graham Dumpleton Vorschlag zum installieren des
mod_wsgi
mitpip
, habe diesen Fehler:Erfolgreich zu kompilieren und installieren Sie die
mod_wsgi
durchpip
ich installieren, müssenapache2-dev
- Paket auf Ubuntu:Danach
pip install mod_wsgi
erfolgreich abgeschlossen.Hoffen, dass vielleicht auch anderen helfen.