Skip to main content
 首页 » 编程设计

python之Django 部署在 Alwaysdata 上

2025年05月04日63soundcode

我读了deploying django app来自 Alwaysdata,我有一个问题。

我们运行 bash django.fcgi,终端显示:

import: unable to open X server `' @ import.c/ImportImageCommand/367. 
django.fcgi: line 5: syntax error near unexpected token `(' 
django.fcgi: line 5: `PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))' 

我做了他们所说的一切,但我无法解决这个问题。我在 Django 1.5 上运行。

- mymodule 
- mysite 
... __init__.py 
... settings.py 
... urls.py 
.. wsgi.py 
- public 
... django.fcgi 
... .htaccess 
... static 
... media 
- manage.py 
- statics 
- templates 
- __init__.py 

这是 django.fcgi 和 .htaccess :

#!/usr/bin/python 
 
import os, sys 
 
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
sys.path.insert(0, PROJECT_DIR) 
sys.path.insert(0, os.path.dirname(PROJECT_DIR)) 
 
PROJECT_NAME = PROJECT_DIR.split('/')[-1] 
os.environ['DJANGO_SETTINGS_MODULE'] = "settings" 
 
from django.core.servers.fastcgi import runfastcgi 
runfastcgi(method="threaded", daemonize="false") 

AddHandler fcgid-script .fcgi 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L] 

我的问题在哪里?我在 Unicode BOM 中编码了我的 django.fcgi 文件,比如 here但没有结果。你知道吗? 谢谢...

编辑:好吧,我的网站无法正常工作:500 内部服务器错误。

服务器配置:Apache、Python 2.6、Django 1.5

请您参考如下方法:

我认为您不应该以这种方式运行该文件。尽管开头有 shebang 行,但该文件应该被解释为 shell 脚本 (bash) 而不是 python 脚本,因此出现“导入”错误(import 似乎是一个 ImageMagick 命令,它使类似于屏幕截图)。

因此运行该文件的正确方法是其中之一

bash -c "./django.fcgi" # file must have execution permission 
python django.fcgi 
./django.fcgi           # also 

500 错误可以通过在 settings.py 上设置 DEBUG=True 或读取日志来调试,如果您的应用程序配置为在某处记录。

编辑:

关于导入错误,我认为正确的配置是

os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings" 

Django 尝试加载 public/settings.py 的方式失败了。更多信息 here .

如果这不起作用,请尝试指定 settings.py 的完整路径:

os.environ['DJANGO_SETTINGS_MODULE'] = os.path.join(PROJECT_DIR, "mysite", "settings") 

希望对您有所帮助。