【发布时间】:2012-07-08 15:19:06
【问题描述】:
这是一件我无法理解的奇怪事情。
这是我的 django 文件目录层次结构简介
project/
apache/ django.wsgi
project/ __init__.py, settings.py, urls.py ..
services/
__init__.py
apis/
__init__.py
fparser.py
wservice.py
...
profile.py
所以,在开发服务器甚至在 heroku (gunicorn) 上一切正常,但在 apache (localhost) 上不工作
当我打开页面时:
它的显示
Exception Type: ImportError at /
Exception Value: cannot import name website_feed_address
这个website_feed_address 位于profile.py
import error 位于 fparser.py
我应该如何解决?
编辑:
django.wsgi
import os, sys
sys.path.append('d:/code/projects-dev/project')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
而问题中上面提到的项目目录层次结构位于d:/code/projects-dev/
编辑 2
这些是 apache 日志错误
[Sun Jul 08 23:14:04 2012] [notice] Parent: Received restart signal -- Restarting the server.
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 124.123.136.220 for ServerName
[Sun Jul 08 23:14:04 2012] [warn] mod_wsgi: Compiled for Python/2.7.
[Sun Jul 08 23:14:04 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
[Sun Jul 08 23:14:05 2012] [notice] Child 5912: Exit event signaled. Child process is ending.
[Sun Jul 08 23:14:05 2012] [warn] RSA server certificate CommonName (CN) `127.0.0.1' does NOT match server name!?
[Sun Jul 08 23:14:05 2012] [notice] Apache/2.2.22 (Win32) mod_wsgi/3.3 Python/2.7.2 mod_ssl/2.2.22 OpenSSL/0.9.8t configured -- resuming normal operations
[Sun Jul 08 23:14:05 2012] [notice] Server built: Jan 28 2012 11:16:39
[Sun Jul 08 23:14:05 2012] [notice] Parent: Created child process 2120
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 124.123.136.220 for ServerName
[Sun Jul 08 23:14:05 2012] [warn] RSA server certificate CommonName (CN) `127.0.0.1' does NOT match server name!?
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 124.123.136.220 for ServerName
[Sun Jul 08 23:14:05 2012] [warn] mod_wsgi: Compiled for Python/2.7.
[Sun Jul 08 23:14:05 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
[Sun Jul 08 23:14:05 2012] [warn] RSA server certificate CommonName (CN) `127.0.0.1' does NOT match server name!?
[Sun Jul 08 23:14:05 2012] [notice] Child 2120: Child process is running
[Sun Jul 08 23:14:06 2012] [notice] Child 2120: Acquired the start mutex.
[Sun Jul 08 23:14:06 2012] [notice] Child 5912: Released the start mutex
[Sun Jul 08 23:14:06 2012] [notice] Child 2120: Starting 64 worker threads.
[Sun Jul 08 23:14:06 2012] [notice] Child 2120: Starting thread to listen on port 443.
[Sun Jul 08 23:14:06 2012] [notice] Child 2120: Starting thread to listen on port 80.
[Sun Jul 08 23:14:07 2012] [notice] Child 5912: Terminating 126 threads that failed to exit.
[Sun Jul 08 23:14:07 2012] [notice] Child 5912: All worker threads have exited.
[Sun Jul 08 23:14:07 2012] [notice] Child 5912: Child process is exiting
编辑 3
profile.py、fparser.py 是这样的
profile.py 只包含一些变量,元组就像settings.py。在这种情况下,它只是导入一个变量website_feed_address。
这是fparser.py
from profile import website_feed_address
import feedparser
class FParser(object):
def __init__(self):
self.pFeed = feedparser.parse(website_feed_address)
# rest of the code goes...
我只想在 FParser 类中使用 website_feed_address 将其作为对象参数。有没有更好的方法?...或 否则,我可以这样用吗?
【问题讨论】:
-
如何定义 Apache 使用的 PYTHONPATH?你如何导入
website_feed_address? -
@Rodrigue 以及我使用 Eclipse.. 大多数 PATH 类型的东西都由它处理。关于 django.wsgi,我在上述问题中添加了更多细节。请检查一下
标签: python django apache web-applications