I'm trying to run a python web app on Apache server. I have installed mod_wsgi:
sudo apt-get install libapache2-mod-wsgi
.
This is my site config file:
<virtualhost *:80>
ServerName 192.168.60.144
WSGIDaemonProcess myapp.dev processes=1 threads=1 python-home="/home/user/.pyenv/versions/3.6.1" python-path="/home/user/API" home='/home/user/API'
WSGIProcessGroup myapp.dev
WSGIScriptAlias / /home/user/API/config_files/myservice.wsgi.py
<Directory /home/user/API>
Order allow,deny
Allow from all
</Directory>
DocumentRoot /home/user/API/myservice/testdir
<Directory />
AllowOverride None
Require all granted
</Directory>
</virtualhost>
However, when trying to access the web app, I get "Internal server error". This is the error from logs:
[Mon Mar 12 13:34:04.054636 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] mod_wsgi (pid=6762): Target WSGI script '/home/user/API/config_files/myservice.wsgi.py' cannot be loaded as Python module. [Mon Mar 12 13:34:04.054665 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] mod_wsgi (pid=6762): Exception occurred processing WSGI script '/home/user/API/config_files/myservice.wsgi.py'. [Mon Mar 12 13:34:04.054693 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] Traceback (most recent call last): [Mon Mar 12 13:34:04.054717 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] File "/home/user/API/config_files/myservice.wsgi.py", line 6, in [Mon Mar 12 13:34:04.054752 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] from pathlib import Path [Mon Mar 12 13:34:04.054775 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] ImportError: No module named pathlib
I have checked the pyenv python installation, and it has the pathlib module installed. This means that probably, not the right version of Python is being used. How can I check which Python version is being used? Did I set the python-home
property incorrectly?