无法在Python/Djang中导入文件

2024-10-01 13:44:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道是怎么回事,但在我自己的笔记本电脑上,一切正常。当我用python2.3.5上传到主机时,我的视图.py在我的模型.py. 我有:

from dtms.models import User
from dtms.item_list import *

其中,我的模型、项目列表和视图文件位于/mysite/dtms/

结果告诉我找不到用户。有什么想法吗?在

另外,当我使用django shell时,我可以从dtms.模型进口*“而且效果很好。在

好的,完成下面的建议后,我得到一个日志文件:

^{pr2}$

我不太清楚这意味着什么-我的文件在mysite/dtms/item中_列表.py. 这是不是意味着它被装载了?我看到dtms模块正在加载,但仍然找不到dtms.模型在


Tags: 文件项目frompy模型import视图列表
3条回答

事实上from X import *起作用并不能保证{}也能起作用,你知道(如果你能戒掉这种{}瘾,从长远来看你会更快乐,但是,这是另一个问题;-)。在

关于导入问题,我的一般建议是用try/except将有问题的导入括起来:

try:
  from blah import bluh
except ImportError, e:
  import sys
  print 'Import error:', e
  print 'sys.path:', sys.path
  blah = __import__('blah')
  print 'blah is %r' % blah
  try:
    print 'blah is at %s (%s)' % (blah.__file__, blah.__path__)
  except Exception, e:
    print 'Cannot give details on blah (%s)' % e

诸如此类。你很快就会发现系统路径不是你想象中的那样,和/或blah在某个奇怪的地方,或者有着奇怪的路径,诸如此类。在

确保您的项目(或“dtms”应用程序上方的文件夹)在python的module search path中。在

这是您可能需要在web服务器配置中设置的内容。它在djangoshell中工作的原因可能是运行shell时位于项目的文件夹中。在

如果您将apache与mod峈python一起使用,可以解释here。在

检查您的系统路径您可以按照Alex所说的进行操作,但是可以使用日志模块,而不是使用print:


import logging
LOG_FILENAME = '/tmp/logging_example.out'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG,)

logging.debug('This message should go to the log file')

相关问题 更多 >