首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django生产部署

Django生产部署
EN

Stack Overflow用户
提问于 2016-05-13 04:23:25
回答 1查看 288关注 0票数 0

我让Django在我的本地机器上运行,但是我到了想将Django站点部署到我的生产服务器的位置。我的服务器是一个Ubuntu14.04服务器,带有Apache2.x、python2.7和Django 1.8。我尝试使用Django对Apache和mod_wsgi 链接的基本配置,但我始终得到以下错误:

我的网站

内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。

下面是我正在接收的Apache错误日志中的错误:

代码语言:javascript
复制
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',  

下面是我的apache2.conf文件:

代码语言:javascript
复制
...

<Directory /var/www/tmws/tmws>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

...

WSGIScriptAlias / /var/www/tmws/tmws/wsgi.py
WSGIPythonPath /var/www/tmws

这是我的wsgi.py文件:

代码语言:javascript
复制
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()

这是我的网站.conf文件:

代码语言:javascript
复制
<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>

任何帮助都将不胜感激。如果还有什么需要我帮忙的话,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-13 05:33:15

您的系统可能正在使用不包含six方法的python_2_unicode_compatible python包的旧版本。将六个版本升级到最新版本应该可以修复它:

代码语言:javascript
复制
pip install --upgrade six

也就是说,最好是在虚拟环境中运行Django,而不是在系统级别上安装包--如果系统包由于某种原因依赖于旧版本的six,那么您可能会遇到其他问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37201221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档