Python 3.6.1?向けにコンパイルされたApache2のmod_wsgiを取得するにはどうすればよいですか?
(または将来のPythonバージョン)
Python 3.6.1仮想環境とDjango 1.11を使用しており、Apache 2.4のmod_wsgiがコンパイルされていることを除いて、Apacheエラーログに従ってすべてが動作しています。 Python/3.5.1 +およびPython/3.5.2を使用しているため、Python 3.6.1コードは、3.5.2で利用できない新機能を使用しているために失敗します
Mod_wsgiはmy Python 3.6.1仮想環境を使用しているようではありませんが、システムのセットアップに関係する他のすべての構成とインストールは問題ないようです(デーモンモードで実行) Django=エラーログによると)に使用しようとしています...
使用した:Sudo apt-get install libapache2-mod-wsgi-py3
Apache 2.4用のmod_wsgiをインストールする
使用した:./configure --with-python=/usr/local/bin/python3.6
およびmake
とmake install
Python 3.6のmod_wsgiをインストールする
私は何か間違ったことをしているに違いない-私を修正してください!
ここに私のApacheエラーログがあります(少し掃除されています)-はい、f ""文字列行で失敗することがわかります(3.5ではないPython 3.6機能)
[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
*また、tir.comは私の実際のサイトの略記です-私はそのドメインとは何の関係もありません
以下をせよ。
システムmod_wsgiパッケージをアンインストールします。
Sudo apt-get remove libapache2-mod-wsgi-py3
pip
を使用してmod_wsgiをインストールします。できればPython仮想環境にインストールしてください。pip
がPython使用する。
pip install mod_wsgi
以下を実行して、Apache構成ファイルに追加する構成を表示して、このmod_wsgiをロードします。
mod_wsgi-express module-config
上記のコマンドの出力を使用して構成を表示し、Apache構成に追加します。
Apacheに構成を追加して、hello world WSGIアプリケーションをロードし、動作をテストします。
以下のpip
ベースのインストールの詳細を参照してください。
@Graham Dumpletonの提案を使用してpip
を使用してmod_wsgi
をインストールすると、次のエラーが発生しました。
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.
mod_wsgi
からpip
を正常にコンパイルしてインストールするには、UbuntuにApache2-dev
パッケージをインストールする必要があります。
Sudo apt-get install -y Apache2-dev
その後、pip install mod_wsgi
は正常に完了します。
それが他の人に役立つことを願っています。