I have Django running on my local machine, but I am at the point to where I want to deploy my Django site to my production server. My server is an Ubuntu 14.04 server, with Apache 2.x, python 2.7, and Django 1.8. I have tried using Django's basic configuration for Apache and mod_wsgi link , but I keep getting the following error:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Here is the error in the Apache Error Log I am receiving:
mod_wsgi (pid=14962): Target WSGI script '/var/www/tmws/tmws/wsgi.py' cannot be loaded as Python module.,
mod_wsgi (pid=14962): Exception occurred processing WSGI script '/var/www/tmws/tmws/wsgi.py'.,
Traceback (most recent call last):,
File "/var/www/tmws/tmws/wsgi.py", line 21, in <module>,
application = get_wsgi_application(),
File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 14, in get_wsgi_application,
django.setup(),
File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup,
apps.populate(settings.INSTALLED_APPS),
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 85, in populate,
app_config = AppConfig.create(entry),
File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 86, in create,
module = import_module(entry),
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module,
__import__(name),
File "/var/www/tmws/django_tables2/__init__.py", line 2, in <module>,
from .tables import Table,
File "/var/www/tmws/django_tables2/tables.py", line 15, in <module>,
from . import columns,
File "/var/www/tmws/django_tables2/columns/__init__.py", line 1, in <module>,
from .base import library, BoundColumn, BoundColumns, Column,
File "/var/www/tmws/django_tables2/columns/base.py", line 10, in <module>,
from django_tables2.utils import Accessor, AttributeDict, OrderBy, OrderByTuple,
File "/var/www/tmws/django_tables2/utils.py", line 111, in <module>,
@six.python_2_unicode_compatible,
AttributeError: 'module' object has no attribute 'python_2_unicode_compatible',
Here is my apache2.conf file:
...
<Directory /var/www/tmws/tmws>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
...
WSGIScriptAlias / /var/www/tmws/tmws/wsgi.py
WSGIPythonPath /var/www/tmws
This is my wsgi.py file:
import os, sys
from django.core.wsgi import get_wsgi_application
sys.path.append('/home/ubuntu/gather/src')
sys.path.append('/usr/local/lib/python2.7/dist-packages')
sys.path.append('/var/www/tmws')
sys.path.append('/var/www/tmws/tmws')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tmws.settings")
application = get_wsgi_application()
This is my websites .conf file:
<VirtualHost *:80>
ServerAdmin xxxxxxxx
ServerName xxxxxxxxxxx
DocumentRoot /var/www/tmws
WSGIScriptAlias / /var/www/tmws/tmws/wsgi.py
ErrorLog ${APACHE_LOG_DIR}/TMWSerror.log
CustomLog ${APACHE_LOG_DIR}/TMWSaccess.log combined
</VirtualHost>
Any help would be greatly appreciated. If there is anything else I can post to help out let me know.
Your system is probably using an older version of the six
python package that doesn't contain the python_2_unicode_compatible
method. Upgrading six to the latest version should fix it:
pip install --upgrade six
That said, it is strongly advisable to run Django from a virtual environment instead of installing packages at the system level - if there are system packages that for some reason are dependent on the older version of six
then you may run into other problems.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.