You will need to uninstall mod_wsgi from your Apache installation and 
recompile/reinstall mod_wsgi from source code so it is compiled against Python 
3.5.

You cannot mix Python versions like you are doing by telling mod_wsgi compiled 
with Python 3.4 to use Python virtual environment directory of a Python 3.5 
version.

BTW. Don’t use python-path to refer to site-packages directory. Better to use 
python-home option to refer to the root directory for the Python virtual 
environment.

http://blog.dscpl.com.au/2014/09/using-python-virtual-environments-with.html 
<http://blog.dscpl.com.au/2014/09/using-python-virtual-environments-with.html>
http://blog.dscpl.com.au/2014/09/python-module-search-path-and-modwsgi.html 
<http://blog.dscpl.com.au/2014/09/python-module-search-path-and-modwsgi.html>

Solve your version mismatch problem first.

Graham

> On 25 Feb 2016, at 10:19 PM, Quentin Caron <[email protected]> wrote:
> 
> Hi guys!
> 
> I have open a thread on Stack Overflow 
> <http://stackoverflow.com/questions/35613336/debian-mod-wsgi-no-module-named-psycopg2-psycopg>
>  about my issue but I believe you will be able to help me :) Here is my 
> problem:
> 
> I am struggling in making Django run with mod_wsgi. I tried to follow 
> recommendations here 
> <http://stackoverflow.com/questions/21158918/django-mod-wsgi-psycopg2-improperlyconfigured-error-loading-psycopg2-module>
>  but it did not work.
> 
> The server is a Debian :
> 
> $ lsb_release -da
>     No LSB modules are available.
>     Distributor ID: Debian
>     Description:    Debian GNU/Linux 8.3 (jessie)
>     Release:    8.3
>     Codename:   jessie
> Python 3.5.1 has been installed with --ensable-shared. The virtualenv venv 
> uses this Python because of the following in the user .bash_profile :
> 
> LD_LIBRARY_PATH=/usr/local/lib
> VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.5
> WORKON_HOME=$HOME/.virtualenvs
> source /usr/local/bin/virtualenvwrapper.sh
> libapache2-mod-wsgi-py3 has been installed, as it is explained, it works for 
> Python3.X. So why do I have a "No module named 'psycopg2._psycopg'" error 
> here ?
> 
> mod_wsgi has been installed in the virtualenv venv.
> 
> Here is the virtualhost:
> 
> <VirtualHost *:80>
>     ServerName mysite.com
>     ServerAlias mysite.com
>     ServerAdmin [email protected]
>     DocumentRoot /var/www/mysite.com
>     ErrorLog ${APACHE_LOG_DIR}/error.log
>     CustomLog ${APACHE_LOG_DIR}/access.log combined
> 
>     WSGIDaemonProcess api 
> python-path=/var/www/mysite.com:/home/user/.virtualenvs/venv/lib/python3.5/site-packages
>     WSGIProcessGroup api
>     WSGIScriptAlias / /var/www/mysite.com/wsgi.py
> 
>     <Directory /var/www/mysite.com>
>         <Files wsgi.py>
>             Require all granted
>         </Files>
>     </Directory>
> </VirtualHost>
> Here is the content of my apache error.log file:
> 
> mod_wsgi: Compiled for Python/3.4.2rc1+.
> mod_wsgi: Runtime using Python/3.4.2.
> AH00489: Apache/2.4.10 (Debian) mod_wsgi/4.3.0 Python/3.4.2 configured -- 
> resuming normal operations
> AH00094: Command line: '/usr/sbin/apache2'
> mod_wsgi (pid=12796): Target WSGI script '/var/www/mysite.com/wsgi.py' cannot 
> be loaded as Python module.
> mod_wsgi (pid=12796): Exception occurred processing WSGI script 
> '/var/www/mysite.com/wsgi.py'.
> Traceback (most recent call last):
> File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/db/backends/postgresql/base.py",
>  line 20, in <module>
> import psycopg2 as Database
> File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/psycopg2/__init__.py",
>  line 50, in <module>
> from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
> ImportError: No module named 'psycopg2._psycopg'
> During handling of the above exception, another exception occurred:
> Traceback (most recent call last):
> File "/var/www/mysite.com/wsgi.py", line 18, in <module>
> application = get_wsgi_application()
> File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/core/wsgi.py",
>  line 13, in get_wsgi_application
> django.setup()
> File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/__init__.py",
>  line 18, in setup
> apps.populate(settings.INSTALLED_APPS)
> File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/apps/registry.py",
>  line 108, in populate
> app_config.import_models(all_models)
> File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/apps/config.py",
>  line 202, in import_models
> self.models_module = import_module(models_module_name)
> File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
> File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
> File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
> File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
> File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
> File "<frozen importlib._bootstrap>", line 1129, in _exec
> File "<frozen importlib._bootstrap>", line 1471, in exec_module
> File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
> File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/auth/models.py",
>  line 4, in <module>
> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
> File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/auth/base_user.py",
>  line 49, in <module>
> class AbstractBaseUser(models.Model):
>    File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/db/models/base.py",
>  line 108, in __new__
>      new_class.add_to_class('_meta', Options(meta, app_label))
>    File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/db/models/base.py",
>  line 299, in add_to_class
>      value.contribute_to_class(cls, name)
>    File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/db/models/options.py",
>  line 263, in contribute_to_class
>      self.db_table = truncate_name(self.db_table, 
> connection.ops.max_name_length())
>    File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/db/__init__.py",
>  line 36, in __getattr__
>      return getattr(connections[DEFAULT_DB_ALIAS], item)
>    File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/db/utils.py",
>  line 212, in __getitem__
>      backend = load_backend(db['ENGINE'])
>    File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/db/utils.py",
>  line 116, in load_backend
>      return import_module('%s.base' % backend_name)
>    File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module
>      return _bootstrap._gcd_import(name[level:], package, level)
>    File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/gis/db/backends/postgis/base.py",
>  line 2, in <module>
>      from django.db.backends.postgresql.base import \\
>    File 
> "/home/user/.virtualenvs/venv/lib/python3.5/site-packages/django/db/backends/postgresql/base.py",
>  line 24, in <module>
>      raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
>      django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 
> module: No module named 'psycopg2._psycopg'
> 
> 
> Does "mod_wsgi: Runtime using Python/3.4.2." means something has to be 
> compiled with my Python 3.5? Is it a freeze problem?
> 
> 
> 
> I can successfully run the following in my venv command interpreter:
> 
> 
> 
> from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
> 
> 
> Thanks for your help :)
> 
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To post to this group, send email to [email protected] 
> <mailto:[email protected]>.
> Visit this group at https://groups.google.com/group/modwsgi 
> <https://groups.google.com/group/modwsgi>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to