Instale o mod_wsgi no Ubuntu com o Python 3.6, o Apache 2.4 e o Django 1.11

2

Como obtenho o mod_wsgi para o Apache2 que foi compilado para o Python 3.6.1?

(ou qualquer versão futura do Python)

Estou usando um ambiente virtual Python 3.6.1 com Django 1.11 e Everything está funcionando de acordo com o log de erros do Apache, exceto que o mod_wsgi para Apache 2.4 foi compilado para Python / 3.5.1 + e está usando Python / 3.5.2. meu código Python 3.6.1 está falhando porque estou usando novos recursos não disponíveis em 3.5.2

Todas as outras configurações e instalações envolvidas na configuração do meu sistema parecem estar corretas (executando no modo daemon), embora o mod_wsgi não pareça estar usando o ambiente virtual do Python 3.6.1 (embora ele esteja tentando usá-lo) para o Django de acordo com o log de erros) ...

Eu usei: sudo apt-get install libapache2-mod-wsgi-py3 para instalar o mod_wsgi para o Apache 2.4

Eu usei: ./configure --with-python=/usr/local/bin/python3.6 e make com make install para instalar o mod_wsgi para o Python 3.6

Eu devo estar fazendo algo errado - por favor corrija-me!

Aqui está o meu Log de Erros do Apache (limpo um pouco) - e sim, eu sei que ele falha na linha de string f "" (recurso do python 3.6 não no 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

* também tir.com é uma abreviação do meu site - não tenho nada a ver com esse domínio

    
por JxAxMxIxN 04.07.2017 / 21:52

1 resposta

0

Você precisa desinstalar a versão apt , instalar mod_wsgi com pip no ambiente que você usará e vincular o mod_wsgi instalado ao Apache. Aqui está a resposta que funcionou para mim: link

    
por 31.08.2017 / 15:45